OleLoad
Loads into
memory an object nested within a specified storage object.
WINOLEAPI OleLoad(
IStorage *
pStg, |
//Pointer to the storage object from which to load |
REFIID riid, |
//Reference to the identifier interface |
IOleClientSite * pClientSite, |
//Pointer to the client site for the object |
LPVOID * ppvObj |
//Indirect pointer to the newly loaded object |
); |
|
Parameters
pStg
[in] Pointer
to the IStorage interface on the storage object from which to load the
specified object.
riid
[in]
Reference to the identifier of the interface that the caller wants to use to
communicate with the object once it is loaded.
pClientSite
[in] Pointer
to the IOleClientSite interface on the client site object being loaded.
ppvObj
[out] When
successful, indirect pointer to the interface specified in riid on the
newly loaded object.
Return Values
This function
supports the standard return value E_OUTOFMEMORY, as well as the following:
S_OK
The object
was loaded successfully.
E_NOINTERFACE
The object
does not support the specified interface.
This function
can return any of the error values returned by the IPersistStorage::Load
Remarks
OLE
containers load objects into memory by calling this function. When calling the OleLoad
function, the container application passes in a pointer to the open storage
object in which the nested object is stored. Typically, the nested object to be
loaded is a child storage object to the container s root storage object. Using
the OLE information stored with the object, the object handler (usually, the
default handler) attempts to load the object. On completion of the OleLoad
function, the object is said to be in the loaded state with its object application
not running.
Some
applications load all of the object s native data. Containers often defer
loading the contained objects until required to do so. For example, until an
object is scrolled into view and needs to be drawn, it does not need to be loaded.
The OleLoad
function performs the following steps:
1. If necessary, performs an automatic conversion
of the object (see the OleDoAutoConvert function).
2. Gets the CLSID from the open storage object by
calling the IStorage::Stat
method.
3. Calls the CoCreateInstance function to create an
instance of the handler. If the handler code is not available, the default
handler is used (see the OleCreateDefaultHandler function).
4. Calls the IOleObject::SetClientSite
method with the pClientSite parameter to inform the object of its client
site.
5. Calls the QueryInterface method for the
IPersistStorage
interface. If successful, the IPersistStorage::Load method is invoked for the
object.
6. Queries and returns the interface identified by
the riid parameter.
See Also