将IUnknown的SAFEARRAY编组为C#

时间:2015-07-26 07:11:50

标签: c# com-interop

我有一个来自第三方的COM接口,它有一个功能

STDMETHOD(GetProperties)(THIS_ /*[in]*/IUnknown* pObject, /*[out, retval]*/VARIANT *pPropertyArray) 

第二个参数是IUnknowns的SAFEARRAY。

我想在C#中使用此接口,并尝试按如下方式对其进行编组。

[Guid("61D0A8E3-C792-4956-8E96-59​4315B95902")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
[ComVisible(true)]
public interface IPropertySource
{
    void GetProperties([In, MarshalAs(UnmanagedType.IUnknown)]Object objectSource,
        [In, Out, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UNKNOWN)] object[] properties);
};

但是第二个参数没有正确编组。

有人可以帮我正确的编组吗?

此致 拉姆

0 个答案:

没有答案