Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O próprio COM não tenta remover automaticamente um objeto da memória quando pensa que o objeto não está mais sendo usado. Em vez disso, o programador de objetos deve remover o objeto não utilizado. O programador determina se um objeto pode ser removido com base em uma contagem de referência.
COM usa os IUnknown métodos, AddRef e Release, para gerenciar a contagem de referência de interfaces em um objeto. As regras gerais para chamar esses métodos são:
Sempre que um cliente recebe um ponteiro de interface,
AddRefdeve ser invocado na interface.Sempre que o cliente terminar de usar o ponteiro da interface, ele deve chamar
Release.
Em uma implementação simples, cada AddRef chamada aumenta e cada Release chamada diminui uma variável de contador dentro do objeto. Quando a contagem retorna a zero, a interface não tem mais usuários e fica livre para se remover da memória.
A contagem de referência também pode ser implementada para que cada referência ao objeto (não a uma interface individual) seja contada. Nesse caso, cada AddRef chamada e Release delega para uma implementação central no objeto e Release libera o objeto inteiro quando sua contagem de referência atinge zero.
Observação
Quando um objeto derivado CComObject é construído usando o operador new, a contagem de referência é 0. Portanto, uma chamada para AddRef deve ser feita após a criação bem-sucedida do objeto derivado de CComObject.
Ver também
Introdução ao COM
Gerenciando tempos de vida de objetos por meio da contagem de referência