问一个COM聚合的问题
ab 2000-08-10 07:09:00 我现正学潘爱民的《COM原理与应用》,到COM聚合有一段看不懂:(Page106)
B聚合了A,在B初始化内部A对象时:
HRESULT CB::Init()
{
1, IUnknown *pUnknownOuter = (IUnknown *)this;
2, HRESULT result = ::CoCreateInstance(CLSID_CompA, pUnknownOuter, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&m_pUnknownInner);
3, result = m_pUnknownInner->QueryInterface(IID_ISomeInterface, (void **)&m_pSomeInterface);
4, pUnknownOuter->Release();
5, return S_OK;
}
书上说第3句在请求ISomeInterface时,外部对象的引用计数加1,而不是内部对象。怎么回事?m_pUnknownInner不是指向内部对象么?第4句更是摸不着头脑。求大侠给解释解释。谢谢。我的信箱:WizardLxj@263.net