恐怕你申明了也没有用。因为iis会自动为没一个线程启动一个套间,在你的程序之前(你的程序是一个被asp调用的组件),所以就算你在调用CoInitializeEx也没有用了。
如果你的COM使用VB实现的,那么肯定是Apartment,如果是vc是可以指定为和种类型。但不是通过CoInitializeEx指定的。

解决方案 »

  1.   

    Mittermeyer(疾风之狼):
    我是用VC做的,该通过什么来指定呢?
    申明了也没有用的话,我是否该用CoInitialize声明为默认的STA呢?
     
      

  2.   

    我的理解是这样的:
    如果你写的是一个组件,就是被外界调用的而不是自己建立线程的程序,根本不需要去调用CoInitialize或者CoInitializeEx。因为调用你的那个线程已经帮你创建好了。除非在你的程序内部另建了线程。
      

  3.   

    Mittermeyer(疾风之狼):我写的这个组件封装了ADO(ADO也算是组件吧),所以要用CoInitialize。
      

  4.   

    没有关系的,调用CoInitialize等API初始化套间的前提,不是说你的程序中是不是使用了其它的组建,而是你是不是新建了线程。
    你本身程序运行的线程如果不是你自己的程序创建的(例如一个DLL),那么就不需要调用。