场景:
我正在尝试将 C++ 应用程序迁移到 WinRT/Metro 样式。此应用程序使用 ATL/COM 对象,该对象通过使用 IDispatchImpl 类来实现 IDispatch 接口,但是,根据 MSDN,IDispatchImpl 不适用于 Metro Style 应用程序。
我的 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 获得引用。我还可以将我的所有文件(库和应用程序)包含在一个项目中,但如果可能的话,我确实希望避免更改使用 IMyDispInterface 引用的代码。