SafeRelease
Muitos dos exemplos de código nesta documentação usam a função a seguir para liberar ponteiros de interface COM.
template <class T> void SafeRelease(T **ppT)
{
if (*ppT)
{
(*ppT)->Release();
*ppT = NULL;
}
}
Observação
Essa função não está definida em um cabeçalho do SDK. Para usar essa função, você deve defini-la em seu próprio código.
Essa função libera o ponteiro ppT e o define como NULL.
Outra opção é usar uma classe de ponteiro inteligente, como CComPtr, que é definida na ATL (Biblioteca de Modelos Ativos).