BindMoniker 函数 (objbase.h)
通过对象的名字对象查找对象,如果对象处于非活动状态,则激活该对象,并检索指向该对象上指定接口的指针。
语法
HRESULT BindMoniker(
[in] LPMONIKER pmk,
[in] DWORD grfOpt,
[in] REFIID iidResult,
[out] LPVOID *ppvResult
);
参数
[in] pmk
指向对象名字对象的指针。 请参阅 IMoniker。
[in] grfOpt
此参数保留供将来使用,并且必须为 0。
[in] iidResult
用于与 对象通信的接口标识符。
[out] ppvResult
接收 iidResult 中请求的接口指针的指针变量的地址。 成功返回后,*ppvResult 包含请求的接口指针。 如果发生错误,*ppvResult 为 NULL。 如果调用成功,则调用方负责通过调用对象的 IUnknown::Release 方法释放指针。
返回值
此函数可以返回以下错误代码或 IMoniker::BindToObject 方法返回的任何错误值。
返回代码 | 说明 |
---|---|
|
如有必要,已找到并激活对象,并返回指向所请求接口的指针。 |
|
找不到名字对象标识的对象。 |
注解
BindMoniker 是一个帮助程序函数,作为一种方便的方式提供给具有对象名字对象的客户端,以获取指向该对象的接口之一的指针。 BindMoniker 打包以下调用:
CreateBindCtx(0, &pbc);
pmk->BindToObject(pbc, NULL, riid, ppvObj);
CreateBindCtx 创建一个绑定上下文对象,该对象支持 IBindContext 的系统实现。 pmk 参数实际上是指向名字对象上的 IMoniker 实现的指针。 此实现的 BindToObject 方法提供指向请求的接口指针的指针。
如果你有多个名字对象要快速绑定,并且你知道这些名字对象将激活同一对象,则直接调用 IMoniker::BindToObject 方法可能更有效,这样就可以对所有名字对象使用相同的绑定上下文对象。 有关详细信息,请参阅 IBindCtx 接口。
允许其文档包含链接对象的容器应用程序是一种特殊的客户端,通常不会直接调用 IMoniker 方法。 相反,客户端通过 IOleLink 接口操作链接的对象。 默认处理程序实现此接口,并根据需要调用相应的 IMoniker 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | objbase.h |
Library | Ole32.lib |
DLL | Ole32.dll |
API 集 | Windows 10版本 10.0.15063 中引入的 ext-ms-win-com-ole32-l1-1-5 () |