Com Iunknown e eu preciso de um ponteiro primeiro antes de ligar para o CogetClassObject?

StackOverflow https://stackoverflow.com/questions/2843670

  •  27-09-2019
  •  | 
  •  

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top