Windows.Foundation.IClosable
C ++ / CXで継承するランタイムインターフェイスをどのように宣言しますか?
これらの試みは両方ともコンパイラエラーを生成します:
public interface class MyInterface : Windows::Foundation::IClosable {
/* bla bla */
};
==> error C2039: 'IClosable' : is not a member of 'Windows::Foundation'
と
public interface class MyInterface {
/* bla bla */
~MyInterface();
};
==> error C2849: 'MyInterface' : an interface cannot have a destructor
IClosable
ただし、システムが提供する一部のインターフェイスは-から継承するため、Windowsランタイムでそのような継承が断固として禁止されているわけではありませんIInputStream
。
代わりにIDLで定義し、C++コードをコンパイルする前にmidlrt.exeを使用MyInterface
して外部ファイルに変換できると思います。.winmd
しかし、それは私のビルドプロセスの望ましくないコンパイルになります。これをC++/ CXソースとして指定する方法はありますか?