ATL包含和聚合
实现聚合的步骤:
1.创建一个内部主件
2.创建一个外部主件
3.添加代码
IUnkNown* m_pSimpleUnkNow;
DECLARE_GET_CONTROLLING_UNKNowN()
HRESULT FinalConstruct()
{
HRESULT hr = CoCreateInstance(CLSID_MyMath,GetControllingUnkNown(),
CLSCTX_INPROC_SERVER,IID_IUnkNown,(void**)&m_pSimpleUnkNow);
return hr;
}
void FinalRelease()
{
if(m_pSimpleUnkNow)
{
m_pSimpleUnkNow->Release();
}
}
实现包容的步骤:
1.创建一个内部主件
2.创建一个外部主件
3.添加代码
继承IMyMath接口
COM_INTERFACE_ENTRY(IMyMath)
IMyMath *m_pMath;
HRESULT FinalConstruct()
{
HRESULT hr = CoCreateInstance(CLSID_MyMath,CLSCTX_INPROC_SERVER,IID_IMyMath,(void**)&m_pMath);
return hr;
}
void FinalRelease()
{
if(m_pMath)
{
m_pMath->Release();
} }