对不起,我得再问一次。我现在正在寻找一个解决方案。 问题是,只有通过调用InvalidCast Exception E_NOINTERFACE的几个方法实现了COM-Interface抛出,它告诉我必须实现IUnknown。 那我怎么能这样做呢?
我几乎尝试了一切...... 目前我有类似的东西
[ComImport,
Guid("279AFA85-4981-11CE-A521-0020AF0BE560"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
System.Security.SuppressUnmanagedCodeSecurity]
public interface IDirectSoundBuffer : IUnknown
{
...
[ComImport]
[Guid("00000000-0000-0000-C000-000000000046")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IUnknown
{
void QueryInterface([In] ref Guid giid, [Out, MarshalAs(UnmanagedType.IUnknown, IidParameterIndex = 0)] out object ppvObject);
[PreserveSig]
uint AddRef();
[PreserveSig]
uint Release();
}
我真的不知道我可以尝试更多。我在很多不同的论坛上讨论过这个话题,但是noboboy知道任何事情:((请帮助我。
答案 0 :(得分:0)
这只是猜测(因为它已经有一段时间了):
不要在C#interop代码中声明IUnkown
并从中继承您的接口。 Com Callable Wrapper将为您实施。