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+ 明确禁止调用对象,该对象在调用 Activate 方法) 时 (调用 IObjectControl。 此类调用将导致RPC_E_DISCONNECTED错误。 例如,如果对象在其构造函数中传出对自身的引用,然后在调用 激活之前将引用调用回该对象,则返回断开连接的错误。
还可以使用 Activate 方法获取对对象的 ISecurityProperty 接口的引用,并在调用任何方法之前检查对象的创建者的安全 ID。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | comsvcs.h |