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