我正在尝试使用InteropServices.Marshal.QueryInterface
将 COM 对象转换为 C# 中的特定类型,但在传递第一个和最后一个参数时遇到了麻烦。
我假设这是一个参考,但由于语法错误IntPtr
,我无法参考我的类来使用 QueryInterface。IntPtr
当然,下面显示的代码没有正确的语法,但它让您了解我想要做什么。
set
{
ClassA a;
Guid guid = Guid.Parse("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
System.Runtime.InteropServices.Marshal.QueryInterface(ref value,
ref guid, out a);
}
编辑:
[ComVisible(true), Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
public ClassA : COMInterface{ ... }
ClassA 是 C# 类,COMInterface
是 COM 接口。它是唯一实现COMInterface
. value
在set
范围内是对 COM 接口的引用,COMInterface