ObjectControl::Activate 方法 (comsvcs.h)

使 COM+ 对象在激活时执行特定于上下文的初始化。

在对象上调用任何其他方法之前,COM+ 运行时环境会调用此方法。

语法

HRESULT Activate();

返回值

此方法可以返回E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK的标准返回值。

注解

每当客户端调用尚未处于活动状态的 COM+ 对象时,COM+ 运行时环境会自动激活该对象。 这称为 实时激活。 对于支持 ObjectControl 作为接口的组件,COM+ 在将客户端的方法调用传递给对象之前调用对象的 Activate 方法。

任何特定于上下文的初始化过程都应在 Activate 方法中为公开 ObjectControl 的对象实现。

例如,可以使用 Activate 方法获取对对象的上下文的引用,并将其存储在成员变量中。 然后,对象上下文可用于任何需要它的方法,并且无需每次要使用它时都获取新的对象上下文。 引用对象的上下文后,可以使用 ObjectContext 方法检查是否启用安全性、对象是否在事务中执行,或者调用方是否处于特定角色。

如果通过实现 CanBePooled 方法来 (启用对象回收以查询对象) , 则 Activate 方法必须能够处理新创建的对象以及回收的对象。 当 Activate 方法返回时,新对象和已回收对象之间不应有可区分的区别。

COM+ 明确禁止在调用 Activate 方法之前调用公开 ObjectControl 的对象, (当它位于其构造函数) 。 此类调用将导致RPC_E_DISCONNECTED错误。 例如,如果对象在其构造函数中向自身传递引用,然后在调用 Activate 之前将该引用调用回该对象,则返回断开连接的错误。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 comsvcs.h

另请参阅

ObjectControl