シナリオ:
C++ アプリケーションを WinRT/Metro スタイルに移行しようとしています。このアプリケーションは、クラスIDispatchImplを使用して IDispatch インターフェイスを実装する ATL/COM オブジェクトを使用しますが、MSDN によれば、Metro Style アプリケーションでは IDispatchImpl を使用できません。
私の ATL/COM クラスは次のようになります。
class MyATLClass :
public IDispatchImpl<IMyDispInterface, &IID_IMyDispInterface, &LIBID_MYLIB, 1, 0>,
public CComObjectRoot,
public CComCoClass<MyATLClass,&CLSID_MyATLClass>
{
...
}
質問:
WinRT で IDispatchImpl に代わるものはありますか?
置換には、たとえば、さまざまなクラスから派生させたり、IDL ファイルを破棄したりすることが含まれます。私の最終的な目標は、MyATLClass のインスタンスで QueryInterface を実行し、IMyDispInterface を介して参照を取得できるようにすることです。すべてのファイル (ライブラリとアプリケーション) を 1 つのプロジェクトに含めることもできますが、可能であれば IMyDispInterface 参照が使用されているコードを変更したくありません。