发表于: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
请各位帮忙!