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).

Sobre o Media Foundation

IUnknown::Release