0

这是我的构造函数:

CMSATools::CMSATools()
{
    m_pInterface = NULL;

    HRESULT hr;
    hr = m_pInterface.CreateInstance(__uuidof(MSAToolsLibrary::MSAToolsLibraryClass));
    if (FAILED(hr))
    {
        // TODO     }
}

m_pInterface 定义:

MSAToolsLibrary::IMSAToolsLibraryInterfacePtr m_pInterface;
4

1 回答 1

2

如果m_pInterface是一个智能 COM 对象指针,例如CComPtr,则不需要显式销毁它。当智能指针超出范围时,例如~CMSATools调用析构函数时,或者当智能指针被分配一个新值时,它会减少它当前持有指针的 COM 对象的引用计数。当 COM 对象的引用计数降至 0 时,它会自行销毁。

于 2017-01-06T11:27:06.360 回答