CoInitialize是比较老的函数,新程序要用CoInitializeEx.
后者完全可以替代前者.CoInitialize(NULL)初始化STA.CoInitializeEx(NULL, COINIT_MULTITHREADED)初始化MTA.CoInitializeEx(NULL, APARTMENTTHREADED)也是sta.
你的两个对象一个是STA,一个是MTA所以要用两个线程模型的.

解决方案 »

  1.   

    CoInitialize和CoInitializeEx好想一般是初始化客户端运行的线程模型吧。
    也就是告诉COM现在客户端是在STA中还是在MTA中。
    而组件的线程模型是根据当前客户线程模型来生成的。如果组件的线程是FREE的话应该无论客户线程类型是什么都能正常创建的吧。如果组件是Single那么他只能在客户的主线程中创建,可能你用CoInitializeEx(NULL, COINIT_MULTITHREADED)初始化客户端,然后创建SINGLE组件吧。
      

  2.   

    CoInitializeEx???请问调用这个函数需要包含(include ??)哪个库,,系统总是报告这个函数没定义。。
      

  3.   

    CoInitializeEx() is Declared in objbase.h.