COM IUnknown y qué necesito un puntero a él primero antes de llamar CoGetClassObject?
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?
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.