Windows.Foundation.IClosableC ++ / 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ソースとして指定する方法はありますか?