可以将继承IUnknown的任何接口制成COM接口吗?

时间:2018-09-20 12:23:02

标签: c# com

我需要调用IWeatherStation接口的方法,该方法从C#继承IUnknown。如果可能的话,我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:1)

好的。这里有一个示例:Example COM Class (C# Programming Guide)

您应该做的第一件事是找到接口的真实定义(idl或c / c ++)。对于此SDK,它位于例如<setup path>\Lockheed Martin\Prepar3D v4 SDK 4.3.29.25520\inc\PDK\IWeatherSystem.h头文件中。在这里您将获得方法和接口ID(也称为“ IID”)。

因此,在您的情况下,它将类似于:

[Guid("e4452b96-16ba-4e82-9342-aa37af1f5c26")] // IID
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWeatherStationV430 // IUnknown base interface is implicit
{
    bool IsValid();
    float GetSurfaceWind();
    void SetSurfaceWind(float aVal);
    // etc...
}