Implementieren von IClassFactory

Wenn ein Client eine CLSID verwendet, um die Erstellung eines Objekts instance anzufordern, ist der erste Schritt die Erstellung eines Klassenobjekts, eines Zwischenobjekts, das eine Implementierung der Methoden der IClassFactory-Schnittstelle enthält. Com stellt zwar mehrere instance-Erstellungsfunktionen bereit, der erste Schritt bei der Implementierung dieser Funktionen ist die Erstellung eines Klassenobjekts.

Daher müssen alle Server die Methoden der IClassFactory-Schnittstelle implementieren, die zwei Methoden enthält:

  • CreateInstance. Diese Methode muss eine nicht initialisierte instance des Objekts erstellen und einen Zeiger auf eine angeforderte Schnittstelle für das Objekt zurückgeben.
  • LockServer. Diese Methode erhöht lediglich die Verweisanzahl für das Klassenobjekt, um sicherzustellen, dass der Server im Arbeitsspeicher verbleibt und nicht heruntergefahren wird, bevor der Client dazu bereit ist.

Um es einem Server zu ermöglichen, für seine eigene Lizenzierung verantwortlich zu sein, definiert COM IClassFactory2, das seine Definition von IClassFactory erbt. Daher muss ein Server, der IClassFactory2 implementiert, per Definition die Methoden von IClassFactory implementieren.

COM bietet auch Hilfsfunktionen für die Implementierung von Out-of-Process-Servern. Weitere Informationen finden Sie unter Out-of-Process-Serverimplementierungshilfsprogramme.

COM-Serveraufgaben

Lizenzierung und IClassFactory2