Contagem de referência
COM próprio não tenta automaticamente remover um objeto de memória quando acha que o objeto não está sendo usado. Em vez de isso, o programador do objeto deve remover o objeto não usado. O programador determina se um objeto pode ser removido com base em uma contagem de referência.
COM usa os métodos de IUnknown , AddRef e Versão, para gerenciar contagem de referência das interfaces em um objeto. As regras gerais para chamar esses métodos são:
Sempre que um cliente recebe um ponteiro de interface, AddRef deve ser chamado a interface.
Sempre que o cliente tiver terminado de usar o ponteiro de interface, deve chamar Versão.
Em uma implementação simples, os incrementos de cada chamada de AddRef e cada Versão chamam diminuições uma variável de contagem do objeto. Quando retorna a contagem de zero, a interface ainda não tiverem todos os usuários e estão livres se remova de memória.
Contagem de referência também pode ser implementada para que cada referência ao objeto (não uma a interface individual é após). Em esse caso, cada AddRef e representantes de chamada de Versão a uma implementação central no objeto e, Versão liberam o objeto inteiro quando a contagem de referência atinge zero.
Dica
Quando CComObject- o objeto derivado é construído usando o operador de new , contagem de referência é 0.Portanto, uma chamada a AddRef deve ser feito após ter criado com êxito CComObjectobjeto derivado de.