可以对任何接口继承的IUnknown可以做成一个COM接口?(can any interface i

2019-11-05 04:47发布

我需要调用的方法IWeatherStation界面,从C#继承的IUnknown。 我该如何去了解它,如果它是可能的吗?

谢谢

Answer 1:

当然。 这里有一个例子: 实施例COM类(C#编程指南) 。

你应该做的第一件事就是找到真正的(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...
}


文章来源: can any interface inheriting IUnknown be made into a COM interface?
标签: c# com