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.
Observação |
---|
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. |