OleLoad 函数 (ole2.h)
将嵌套在指定存储对象中的对象加载到内存中。
语法
HRESULT OleLoad(
[in] LPSTORAGE pStg,
[in] REFIID riid,
[in] LPOLECLIENTSITE pClientSite,
[out] LPVOID *ppvObj
);
parameters
[in] pStg
指向存储对象上要从中加载指定对象的 IStorage 接口的指针。
[in] riid
对调用方要在加载对象后与对象通信的接口标识符的引用。
[in] pClientSite
指向正在加载的客户端站点对象上的 IOleClientSite 接口的指针。
[out] ppvObj
接收 riid 中请求的接口指针的指针变量的地址。 成功返回后,*ppvObj 在新加载的对象上包含请求的接口指针。
返回值
此函数在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
对象不支持指定的接口。 |
此外,此函数可以返回 IPersistStorage::Load 方法返回的任何错误值。
注解
OLE 容器通过调用此函数将对象加载到内存中。 调用 OleLoad 函数时,容器应用程序会传入指向存储嵌套对象的打开存储对象的指针。 通常,要加载的嵌套对象是容器根存储对象的子存储对象。 使用随 对象一起存储的 OLE 信息,对象处理程序通常 (默认处理程序) 尝试加载对象。 OleLoad 函数完成后,该对象处于加载状态,其对象应用程序未运行。
某些应用程序加载对象的所有本机数据。 容器通常会延迟加载包含的对象,直到需要加载。 例如,在将对象滚动到视图中并需要绘制之前,不需要加载它。
OleLoad 函数执行以下步骤:
- 如有必要, 执行对象的自动转换 (请参阅 OleDoAutoConvert 函数) 。
- 通过调用 IStorage::Stat 方法从打开的存储对象获取 CLSID。
- 调用 CoCreateInstance 函数以创建处理程序的实例。 如果处理程序代码不可用,则使用默认处理程序 (查看 OleCreateDefaultHandler 函数) 。
- 使用 pClientSite 参数调用 IOleObject::SetClientSite 方法,以通知对象其客户端站点。
- 为 IPersistStorage 接口调用 QueryInterface 方法。 如果成功,则为 对象调用 IPersistStorage::Load 方法。
- 查询并返回由 riid 参数标识的接口。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |