&引用;“空的”;继承的COM接口未正确封送

&引用;“空的”;继承的COM接口未正确封送,com,marshalling,idl,Com,Marshalling,Idl,我有一个内置的proc-COM服务器(dll,内置于MSVC10中),用于C#client。其中一个接口的定义如下: [ object, uuid(some guid), dual, nonextensible, helpstring("IDerived Interface"), pointer_default(unique) ] interface IDerived : IBase{ }; co类实现了IDerived和IBase(以及一些其他

我有一个内置的proc-COM服务器(dll,内置于MSVC10中),用于C#client。其中一个接口的定义如下:

[
    object,
    uuid(some guid),
    dual,
    nonextensible,
    helpstring("IDerived Interface"),
    pointer_default(unique)
]
interface IDerived : IBase{
};
co类实现了
IDerived
IBase
(以及一些其他接口):

男女同班是公寓式的。当MTA客户端线程获取
IDerived
并尝试调用其任何方法(继承自
IBase
)时,它会在代理/存根中的某个位置崩溃。在STA中,它工作得很好,因此我认为
iderive
没有正确编组。另一方面,如果我显式地使用
IBase
,或者如果我向
IDerived
添加了一个方法,那么一切都很好

为什么空的
iderive
未正确编组

[
    uuid(some guid),
    helpstring("SomeClass Class"),
    noncreatable,
    hidden
]
coclass SomeClass
{
    [default] interface IDerived;
    interface IBase;
    // etc.
};