Gerenciando a Alocação de Memória
Em COM, muitos, se não a maioria, métodos de interface são chamados por código escrito por uma organização de programação e implementados por código escrito por outra. Muitos dos parâmetros e valores de retorno dessas funções são de tipos que podem ser passados por valor. Às vezes, no entanto, é necessário passar estruturas de dados para as quais esse não é o caso, portanto, é necessário que tanto o chamador quanto o chamado tenham uma política de alocação e desalocação compatível. COM define uma convenção universal para alocação de memória, porque é mais razoável do que definir regras caso a caso e para que a implementação de chamada de procedimento remoto COM possa gerenciar corretamente a memória.
Os métodos de uma interface COM sempre fornecem gerenciamento de memória de ponteiros para a interface chamando as funções AddRef e Release encontradas na interface IUnknown, da qual todas as outras interfaces COM derivam. (Veja Regras para gerenciar contagens de referência para obter mais informações.)
Esta seção descreve apenas como alocar memória para parâmetros que não são passados por valor — não ponteiros para interfaces, mas coisas mais mundanas, como cadeias de caracteres, ponteiros para estruturas e assim por diante.
Para Mais informações, consulte os seguintes tópicos: