COM+ 编程中的上下文、对象激活与多线程编程
1. 调用上下文
在处理方法调用时,对象可能需要获取其调用者的更多信息,例如检查调用者的凭据。对象上下文仅存储对象自身的上下文信息,并不包含调用者的信息。
为解决这一问题,COM+ 为当前方法调用定义并关联了一个上下文。方法可以通过调用 CoGetCallContext API 来获取此调用上下文,其原型如下:
WINOLEAPI CoGetCallContext( /*IN*/ REFIID riid,
/*OUT*/ void **ppInterface );
调用上下文支持多个接口,参数 riid 指定了所请求接口的 IID。我们关注的接口有 IServerSecurity 和 ISecurityCallContext 。
2. 对象激活
对象激活由 COM+ 提供的服务控制管理器(SCM)处理。当客户端使用 CoCreateInstance(Ex) 或 CoGetClassObject 请求激活对象时,SCM 会定位并加载相应的组件,然后将原始对象或其代理的接口指针交给客户端。
对象激活主要有以下三种基本场景:
| 场景 | 描述 | 激活对象运行方式 |
| — | — | — |
| 1 | 激活器和组件都在本地机器上,且组件属于库应用程序 | 与激活
超级会员免费看
订阅专栏 解锁全文
9101

被折叠的 条评论
为什么被折叠?



