com server中的子线程为什么调用出接口事件而client端收不到呢?而com server的主线程可以。急!!!

解决方案 »

  1.   

    我与你遇到同样的问题,不过我已经查明白原因了,但不知道如何解决。这涉及到在套间间列集指针的问题,如果你不是使用MTA来创建你的COM SERVER的话,那主线程是一个STA(对象一般在这个STA中创建),但你创建的其他线程不在这个主线程的STA中,所以不能直接使用指针来调用接口方法(好象调用不会报错,但不产生任何效果),要求你必须在“子”线程中进入一个STA(调用CoInitialize),然后在这两个STA间来列集指针(使用CoMarshalInterThreadInterfaceInStream)。
    我现在的问题是,对于ATL生成的事件代CProxy_IControlEvents< CControl >,他的接口指针是什么,到底该列集什么,我想列集this,但行不通。
    如果你解决了,通知我一声!