ComObj.TComObjectFactory

From RAD Studio VCL Documentation (German)
Jump to: navigation, search

Delphi-Informationen

von ComObj.pas

TComObjectFactory = class(TObject)


Unit: ComObj

Typ: Klasse

Geerbte Klassen-Member: Member von ComObj.TComObjectFactory

Klasseneigenschaften: Eigenschaften von ComObj.TComObjectFactory

Klassenmethoden: Methoden von ComObj.TComObjectFactory

Klassenkonstruktoren und -destruktoren: Konstruktoren von ComObj.TComObjectFactory

Beschreibung

TComObjectFactory ist der Typ eines Klassengenerator-Objekts, mit dessen Hilfe eine TComObject-Klasse instantiiert wird.


TComObjectFactory unterstützt die Schnittstellen IUnknown, IClassFactory und IClassFactory2. Die Schnittstelle IClassFactory wird von Klassenobjekten implementiert, die ihre Klassen über einen Klassenbezeichner (CLSID) instantiieren. IClassFactory muss für jede Objektdefinition implementiert werden, damit Objekte dieses Typs erstellt werden können. Die Schnittstelle IClassFactory2 wird von Klassengeneratoren implementiert, die Lizenzierungsunterstützung benötigen.

Klassengeneratoren instantiieren die COM-Klassen, die über einen registrierten Klassenbezeichner (CLSID) angegeben sind. Die Erstellung der Klassengenerator-Objekte erfolgt automatisch durch die COM-Server, welche den Quelltext für die Klassenobjekte und deren zugeordnete Klassen enthalten. Bei der Erstellung eines Klassengenerators wird die CLSID in einem Parameter für den Konstruktor des Klassengenerator-Objekts angegeben. Diese CLSID bezeichnet den Typ des Objekts, für das der Klassengenerator Instanzen erzeugt.

Klassengenerator-Objekte können auch extern durch einen direkten Aufruf der Windows-API-Funktion CoCreateClassObject instantiiert werden. Sie können zur Instantiierung einer COM-Klasse aber auch die Funktionen CreateComObject bzw. CreateOleObject verwenden, in denen die entsprechenden Windows-API-Funktionen gekapselt sind. Diese Funktionen verwenden Klassengeneratoren indirekt zur Instantiierung der Klassen. Wenn mehrere Instanzen einer Klasse mit einer CLSID erzeugt werden müssen, ist es effizienter, einen Klassengenerator zu instantiieren, einen Zeiger auf dessen IClassFactory-Schnittstelle abzurufen und seine Methoden einzusetzen.

Die Verwaltung der Klassengeneratoren auf dem Server erfolgt durch einen globalen Klassen-Manager, auf den über die ComClassManager-Funktion zugegriffen wird. Dieser Klassenmanager verwaltet eine Liste der Generatoren. Über die Liste können die Klassengeneratoren – entsprechend den Richtlinien des übergeordneten COM-Servers – manipuliert werden.

IUnknown, IClassFactory, IClassFactory2

Siehe auch

Personal tools