IBindCtx::RegisterObjectBound 方法 (objidl.h)

向绑定上下文注册对象,以确保该对象在释放绑定上下文之前保持活动状态。

语法

HRESULT RegisterObjectBound(
  [in] IUnknown *punk
);

参数

[in] punk

指向注册为绑定的对象上的 IUnknown 接口的指针。

返回值

此方法可以返回E_OUTOFMEMORY和S_OK的标准返回值。

注解

通过 IMoniker 接口的实现) 编写新名字对象类 (,只要实现激活对象,就应调用此方法。 这最常发生在绑定名字对象的过程中,但在检索名字对象的显示名称、将显示名称解析为名字对象或检索上次修改对象的时间时也可能发生。

RegisterObjectBound 调用 AddRef 来创建对对象的附加引用。 但是,仍必须释放自己的指针副本。 为同一对象调用此方法两次会创建对该对象的两个引用。 可以通过调用 IBindCtx::RevokeObjectBound 来释放通过调用此方法获得的引用。 释放绑定上下文本身时,将释放绑定上下文保留的所有引用。

调用 RegisterObjectBound 以向绑定上下文注册对象,使对象保持活动状态,直到释放绑定上下文。 在后续绑定操作中重用绑定上下文 (用于同一复合名字对象的另一部分或不同的名字对象) 可以使后续绑定操作更高效,因为它不必重新加载该对象。 但是,仅当后续绑定操作需要与原始绑定操作相同的一些对象时,这才会提高性能,因此你需要在重用绑定上下文的可能性能改进与不必要地激活对象的成本之间进行平衡。

IBindCtx 不提供检索指向使用 RegisterObjectBound 注册的对象指针的方法。 假设对象已向正在运行的对象表注册自身,则名字对象实现可以调用 IRunningObjectTable::GetObject 来检索指向该对象的指针。

要求

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

另请参阅

IBindCtx

IRunningObjectTable::GetObject