首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ATL覆盖QueryInterface

使用ATL覆盖QueryInterface
EN

Stack Overflow用户
提问于 2015-09-11 14:04:26
回答 1查看 859关注 0票数 1

是否可以为使用QueryInterface的类提供ATL实现?

代码语言:javascript
复制
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功能。

调用堆栈如下所示:

代码语言:javascript
复制
CComObjectRootBase::InternalQueryInterface
CConcrete::_InternalQueryInterface // BEGIN_COM_MAP
CComObject<CConcrete>::QueryInterface // Override of QI from END_COM_MAP
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-11 20:30:47

我最后所做的是创建一个新版本的BEGIN_COM_MAP,它不包括_InternalQueryInterface的实现。然后,我将我的模拟代码放入其中,并将非模拟调用转发给InternalQueryInterface

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32525395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档