如果是代理流程或COM+,谁负责调用CoInitialize和ConInitialize;

如果是代理流程或COM+,谁负责调用CoInitialize和ConInitialize;,com,atl,com+,isapi,Com,Atl,Com+,Isapi,如果需要,谁负责呼叫CoInitialize和CouncInitialize 1-我在代理进程中托管COM dll(通过使用dcomcnfg实用程序或COM+向导) 2-我构建了一个包含COM对象的ISAPI DLL 不知道案例2,但在案例1中,代理进程肯定会调用CoInitialize()/CoUninitialize()。我是这样知道的 我们在COM+中托管了一个COM对象,它本身使用MS XML 4。当需要在MS XML 4中创建XML文档对象时,可以调用CoCreateInstance(

如果需要,谁负责呼叫CoInitialize和CouncInitialize

1-我在代理进程中托管COM dll(通过使用dcomcnfg实用程序或COM+向导)


2-我构建了一个包含COM对象的ISAPI DLL

不知道案例2,但在案例1中,代理进程肯定会调用
CoInitialize()
/
CoUninitialize()
。我是这样知道的

我们在COM+中托管了一个COM对象,它本身使用MS XML 4。当需要在MS XML 4中创建XML文档对象时,可以调用
CoCreateInstance()
。我们从不在COM对象中调用
CoInitialize()
,但文档创建总是成功的-当然代理调用
CoInitialize()
。如果我们在独立应用程序中执行相同操作,文档创建将失败,除非我们自己调用
CoInitialize()

所以底线是:COM+代理(我相信这也适用于DCOM代理)调用
CoInitialize()
本身


顺便说一句,您可以使用它来调查案例2-在ISAPI dll中调用
CoCreateInstance()
-如果成功,则已调用
CoInitialize()

感谢您的回复。你知道COM+代理是加入STA还是加入MTA吗?@arnold:看起来这取决于COM对象踏步模型: