这是我的构造函数:
CMSATools::CMSATools()
{
m_pInterface = NULL;
HRESULT hr;
hr = m_pInterface.CreateInstance(__uuidof(MSAToolsLibrary::MSAToolsLibraryClass));
if (FAILED(hr))
{
// TODO }
}
m_pInterface定义为:
MSAToolsLibrary::IMSAToolsLibraryInterfacePtr m_pInterface;
答案 0 :(得分:2)
如果m_pInterface
是智能COM对象指针,如CComPtr,则不需要显式销毁它。当智能指针超出范围时,例如调用~CMSATools
析构函数时,或者为智能指针分配新值时,它会减少当前持有指针的COM对象的引用计数。当COM对象的引用计数降为0时,它会自行销毁。