如何在C#中获取指向IUnknown的指针

.NET interop将COM对象包装到.NET对象(运行时可调用包装器,RCW)中,这隐藏了通常的接口查询。 为了使用Running Objects Table注册表示filter图形的COM对象,我需要其IUnknown接口的(本机)地址(请参阅如何对DirectShow图形进行反向工程? )。

所以问题是:如何在C#中获取COM对象的IUnknown指针?

使用Marshal.GetIUnknownForObject() 。