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 包含请求的接口指针。 如果发生错误,*ppvResultNULL。 如果调用成功,则调用方负责通过调用对象的 IUnknown::Release 方法释放指针。

返回值

此函数可以返回以下错误代码或 IMoniker::BindToObject 方法返回的任何错误值。

返回代码 说明
S_OK
如有必要,已找到并激活对象,并返回指向所请求接口的指针。
MK_E_NOOBJECT
找不到名字对象标识的对象。

注解

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 ()

另请参阅

CreateBindCtx

IMoniker::BindToObject