Contagem de referência
Automaticamente COM ele mesmo não tenta remover um objeto de memória quando pensa que o objeto não está mais sendo usado.Em vez disso, o programador de objeto 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 o IUnknown methods, AddRef and Versão, para gerenciar a contagem de referência de interfaces em um objeto.As regras Geral para chamar esses métodos são:
Sempre que um cliente recebe um ponteiro de interface, AddRef deve ser chamado na interface.
Sempre que o cliente terminou de usar o ponteiro de interface, ele deve chamar Versão.
Em uma implementação simples, cada AddRef incrementos de telefonar e cada Versão chamar decrementa uma variável de contador dentro do objeto.Quando a contagem retorna para zero, a interface não tem todos os usuários e está disponível para remover a mesmo da memória.
Contagem de referência também pode ser implementado para que cada referência ao objeto (não para uma interface individual) é contada.Nesse caso, cada AddRef e Versão uma implementação central no objeto e telefonar delegadosVersão libera o objeto inteiro quando sua contagem de referência chega a zero.
Observação: |
---|
Quando um CComObject-objeto derivado é construída usando o novo operador, a contagem de referência é 0.Portanto, uma telefonar para AddRef deve ser feita depois de criar com êxito o CComObject-derivados do objeto. |