一些函数,特别是在COM接口中,公开了
参数,用于指定方法应返回的接口类型。下面是这样一个示例方法:
[DllImport("shell32.dll", PreserveSig=false)]
[return: MarshalAs(UnmanagedType.IUnknown)]
static extern object SHBindToObject(IShellFolder psf, IntPtr pidl, [MarshalAs(UnmanagedType.IUnknown)]object pbc, [In]ref Guid riid);
SHBindToObject
因此,根据C#约定,将其作为引用传递(除了性能之外)是没有意义的。我记不清了,但我记得应该有一些自定义属性或为这种情况指定的东西,来告诉封送员它应该真正封送,就像它是一样
ref Guid
,而指定时没有
ref
我在
马歇尔属性
,并在
非托管类型