COM IUnknown y qué necesito un puntero a él primero antes de llamar CoGetClassObject?

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

  •  27-09-2019
  •  | 
  •  

Pregunta

En COM, cuando se desea crear una instancia de un objeto COM Server, primero tiene que obtener un puntero a su interfaz IUnknown y sólo entonces crear un objeto de clase mediante CoGetClassObject?

Por lo que yo entiendo, IUnknown se utiliza para gestionar tiempos de vida de objetos, por lo que desde mi entendimiento, cualquier objeto que el cliente quiere crear, uno necesita un puntero a ella de implementación de la interfaz IUnknown primero.

sonido correcto? Si no es así, ¿puede alguien decirme cómo funciona?

¿Fue útil?

Solución

IUnknown gestiona el ciclo de vida de un existente objeto COM. Antes de que se ha creado el objeto, no hay ningún puntero IUnknown que hablar.

CoGetClassObject se utiliza para obtener la interfaz IUnknown para un objeto que se espera para crear los objetos de interés. Es decir, es un objeto fábrica , un general implementos IClassFactory, que declara el método CreateInstance que se utiliza para crear objetos.

En lugar de utilizar generadores de clases de forma explícita, a menudo es más fácil de simplemente CoCreateInstance llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top