问一个关于聚合的问题 点击:618 | 回复:0



伯爵红茶

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年8月02日
发表于:2004-08-31 09:37:00
楼主
在MFC中利用ccmdtarget实现嵌套类生成两个组件对象,A和B,分别实现接口IA和IB,现在我要实现A聚合B,是否应该如下进行: [1]在创建A以后将A的Iunknown传给B,及将B的m_pouterUNknown指向A的m_pouterunkown [2]在ExternalQueryInterface函数中检查是否聚合,如果被聚合则调用 m_pouterunkown-〉ExternalQueryInterface,如果不被聚合则调用InternalQueryInterface [3]在InternalQueryInterface函数中调用ccmdtarget的成员函数getinterface,如果找不到指定的借口则调用queryaggregates成员函数,在queryaggregates中调用被聚合对象的InternalQueryInterface,同上调用getinterface函数获得指定接口指针。 请问如上步骤是否可行,有无简单方法在MFC中实现两对象的聚合? 在创建A以后将A的Iunknown传给B的时候,如何获得A的Iunknown?是否可以这样进行 Iunknown *punknownouter=(Iunknown *)this//这个在A中可以进行吗? 然后在B的构造函数中讲punknownouter传递给B的m_pouterunkown 请各位帮忙!


热门招聘
相关主题

官方公众号

智造工程师