Hilfsklassen (CoClasses) und Klassengeneratoren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu COM-Server


Ein COM-Objekt ist eine Instanz einer Hilfsklasse (CoClass), wobei es sich um eine Klasse handelt, die eine oder mehrere COM-Schnittstellen implementiert. Das COM-Objekt stellt die Dienste entsprechend der Definition durch seine Schnittstellen zur Verfügung.

Hilfsklassen werden von einem speziellen Objekttyp, dem Klassengenerator, instantiiert. Immer wenn die Dienste eines Objekts von einem Client angefordert werden, erzeugt ein Klassengenerator eine Objektinstanz für den betreffenden Client. Wenn dann ein anderer Client die Dienste des Objekts anfordert, erzeugt der Klassengenerator eine weitere Objektinstanz für den zweiten Client. (Clients können auch an ablaufende COM-Objekte gebunden werden, die sich selbst registrieren, um das zu unterstützen.)

Eine Hilfsklasse muss über einen Klassengenerator und einen Klassenbezeichner (CLSID) verfügen, so dass sie extern, d.h. von einem anderen Modul aus, instantiiert werden kann. Die Verwendung dieser eindeutigen Bezeichner für Hilfsklassen ermöglicht die Aktualisierung der Hilfsklassen bei jeder neuen Implementierung von Schnittstellen in ihrer Klasse. Für eine neue Schnittstelle können Methoden geändert oder hinzugefügt werden, ohne dass ältere Versionen davon betroffen sind, im Gegensatz zur Verwendung von DLLs, wo dies ein häufig auftretendes Problem darstellt.

Die Delphi-Experten übernehmen die Zuweisung von Klassenbezeichnern sowie das Implementieren und Instantiieren von Klassengeneratoren.

Siehe auch