如何使用C#将IUnknown参数传递给COM接口?
我有一个这样定义的COM接口如何使用C#将IUnknown参数传递给COM接口?,c#,com,iunknown,com-interface,C#,Com,Iunknown,Com Interface,我有一个这样定义的COM接口 interface Client : IUnknown { [id(1)] HRESULT GetSomething ( enum SomeID someID, [out] IUnknown **pUnknown ); }; 如何使用C#传递IUnknown对象?假设您对该对象一无所知,您可能会使用IntPtr表示IUnknown,然后使用以下方法获取其RCW: 假设您对该对象一无所知,您可能会使用IntP
interface Client : IUnknown
{
[id(1)] HRESULT GetSomething
(
enum SomeID someID,
[out] IUnknown **pUnknown
);
};
如何使用C#传递IUnknown
对象?假设您对该对象一无所知,您可能会使用IntPtr表示IUnknown,然后使用以下方法获取其RCW:
假设您对该对象一无所知,您可能会使用IntPtr来表示IUnknown,然后使用以下方法为其获取RCW:
您不传递任何内容,它返回接口指针。IUnknown是一个不透明的接口,由所有COM接口实现。在C#中,它将是object类型的对象,即“可以是任何东西”的托管版本。基本代码如下所示:
object retval;
client.GetSomething(SomeID.Magic, out retval);
然后由您将返回的对象转换为实际的接口类型,可能是基于Magic。您的问题没有给出任何提示,您必须阅读COM组件的文档才能有一个想法。如果没有传递任何内容,它将返回一个接口指针。IUnknown是一个不透明的接口,由所有COM接口实现。在C#中,它将是object类型的对象,即“可以是任何东西”的托管版本。基本代码如下所示:
object retval;
client.GetSomething(SomeID.Magic, out retval);
然后由您将返回的对象转换为实际的接口类型,可能是基于Magic。您的问题没有给出任何提示,您必须阅读COM组件的文档才能有一个想法