IObjectControl::Activate 方法 (comsvcs.h)

使 COM+ 对象能够在激活时执行特定于上下文的初始化。 在对象上调用任何其他方法之前,COM+ 运行时环境会调用此方法。

语法

HRESULT Activate();

返回值

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

注解

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

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

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

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

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

还可以使用 Activate 方法获取对对象的 ISecurityProperty 接口的引用,并在调用任何方法之前检查对象创建者的安全 ID。

要求

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

另请参阅

IObjectControl