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 |