COM IUnknown e ho bisogno di un puntatore ad esso prima prima di chiamare CoGetClassObject?

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

  •  27-09-2019
  •  | 
  •  

Domanda

In COM, quando si desidera creare un'istanza di un oggetto COM server, fare è necessario prima di ottenere un puntatore ad esso è IUnknown e solo allora creare un oggetto di classe utilizzando CoGetClassObject?

Per quanto mi risulta, IUnknown viene utilizzato per gestire vite degli oggetti, in modo dalla mia comprensione, qualsiasi oggetto il cliente vuole creare, ha bisogno di un puntatore ad esso di implementazione IUnknown prima.

suono corretto? In caso contrario, qualcuno può dirmi come funziona?

È stato utile?

Soluzione

IUnknown gestisce la durata della vita di un esistente oggetto COM. Prima che l'oggetto viene creato, non v'è alcun puntatore IUnknown di cui parlare.

CoGetClassObject viene utilizzato per ottenere l'interfaccia IUnknown per un oggetto che si prevede di creare gli oggetti di interesse. Vale a dire, si tratta di un oggetto fabbrica , un solito implementa IClassFactory, che dichiara il metodo CreateInstance che si utilizza per creare oggetti.

Invece di usare le fabbriche di classe in modo esplicito, è spesso più semplice basta chiamare CoCreateInstance.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top