是否可以为使用QueryInterface的类提供ATL实现?
BEGIN_COM_MAP(CConcrete) // Defines _InternalQueryInterface
COM_INTERFACE_ENTRY(IInterface)
END_COM_MAP() // Defines QueryInterface as a pure virtual function which
// is overridden in CComObject<CConcrete>我是为了嘲笑目的而重写的,允许用户模拟QueryInterface失败。当没有显式配置时,我想维护默认的ATL QueryInterface功能。
调用堆栈如下所示:
CComObjectRootBase::InternalQueryInterface
CConcrete::_InternalQueryInterface // BEGIN_COM_MAP
CComObject<CConcrete>::QueryInterface // Override of QI from END_COM_MAP发布于 2015-09-11 20:30:47
我最后所做的是创建一个新版本的BEGIN_COM_MAP,它不包括_InternalQueryInterface的实现。然后,我将我的模拟代码放入其中,并将非模拟调用转发给InternalQueryInterface。
https://stackoverflow.com/questions/32525395
复制相似问题