createBindCtx 函数 (objbase.h)

返回指向 IBindCtx 实现的指针 (绑定上下文对象) 。 此对象存储有关特定名字对象绑定操作的信息。

语法

HRESULT CreateBindCtx(
  [in]  DWORD reserved,
  [out] LPBC  *ppbc
);

参数

[in] reserved

此参数是保留的,必须为 0。

[out] ppbc

接收指向新绑定上下文对象的接口指针的 IBindCtx* 指针变量的地址。 函数成功后,调用方负责在绑定上下文中调用 Release 。 绑定上下文的 NULL 值指示发生了错误。

返回值

此函数可以返回标准返回值E_OUTOFMEMORY和S_OK。

注解

CreateBindCtx 最常用于绑定名字对象 (通过名字对象) 来定位和获取指向接口的指针的过程,如以下步骤所示:

  1. 通过调用 CreateBindCtx 函数获取指向绑定上下文的指针。
  2. 对名字对象调用 IMoniker::BindToObject 方法,检索指向名字对象所引用对象的接口指针。
  3. 释放绑定上下文。
  4. 使用 接口指针。
  5. 释放接口指针。
以下代码片段演示了这些步骤。
// pMnk is an IMoniker * that points to a previously acquired moniker 
IInterface *pInterface; 
IBindCtx *pbc; 
 
CreateBindCtx( 0, &pbc ); 
pMnk->BindToObject( pbc, NULL, IID_IInterface, &pInterface ); 
pbc->Release(); 

// pInterface now points to the object; safe to use pInterface 
pInterface->Release(); 

除了 IMoniker::BindToObjectMkParseDisplayName 函数之外,绑定上下文还用于 IMoniker 接口的其他方法中。

绑定上下文保留对绑定操作期间绑定对象的引用,导致绑定对象保持活动状态 (使对象的服务器在释放绑定上下文之前保持) 运行。 在后续操作绑定到同一对象时重用绑定上下文可以提高性能。 但是,应尽快释放绑定上下文,因为可能会不必要地激活对象。

绑定上下文包含 BIND_OPTS 结构,该结构包含应用于绑定操作中所有步骤的参数。 使用 CreateBindCtx 创建绑定上下文时, BIND_OPTS 结构的字段初始化如下。

cbStruct = sizeof(BIND_OPTS) 
grfFlags = 0 
grfMode = STGM_READWRITE 
dwTickCountDeadline = 0

可以调用 IBindCtx::SetBindOptions 方法来修改这些默认值。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objbase.h
Library Ole32.lib
DLL Ole32.dll

另请参阅

IBindCtx

IMoniker

MkParseDisplayName