Com Iunknown e eu preciso de um ponteiro primeiro antes de ligar para o CogetClassObject?
Pergunta
No com, quando você deseja criar uma instância de algum objeto de servidor COM, primeiro precisa obter um ponteiro para a interface Iunknown e só então criar um objeto de classe usando o coGetClassObject?
Até onde eu o entendo, Iunknown é usado para gerenciar a vida útil do objeto; portanto, pelo meu entendimento, seja qual for o objeto que o cliente deseje, é necessário um ponteiro para a implementação da interface Iunknown primeiro.
Soa correto? Caso contrário, alguém pode me dizer como funciona?
Solução
IUnknown
gerencia a vida útil de um existir Com objeto. Antes que o objeto seja criado, não há IUnknown
ponteiro para falar.
CoGetClassObject
é usado para obter o IUnknown
Interface para um objeto que deve criar os objetos de interesse. Ou seja, é um objeto fábrica, geralmente implementa IClassFactory
, que declara o CreateInstance
Método que você usa para criar objetos.
Em vez de usar fábricas de classe explicitamente, geralmente é mais simples ligar CoCreateInstance
.