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 最常用于绑定名字对象 (查找和获取指向接口的指针,方法是通过名字对象) 标识接口,如以下步骤所示:
- 通过调用 CreateBindCtx 函数获取指向绑定上下文的指针。
- 在名字对象上调用 IMoniker::BindToObject 方法,检索指向名字对象所引用对象的接口指针。
- 释放绑定上下文。
- 使用接口指针。
- 释放接口指针。
// 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::BindToObject 和 MkParseDisplayName 函数之外的 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 |