COM-Kategorienkategorien
Eintrag zuletzt aktualisiert am: 07.03.2004
Das
Component Object Model bietet einen einfachen Mechanismus zur Kategorisierung von
COM-Klassen. Der Name dieses Mechanismus ist mit
Komponentenkategorien (Component Categories) unglücklich gewählt, da er sich laut der COM-Spezifikation [OPE99, /CHP01CHP.HTM#chap01.sect2.11] eindeutig auf Klassen und nicht auf gan-ze
Komponenten bezieht. Eine
COM-Klasse kann zu mehreren
Komponentenkategorien gehören; diese Zuordnung wird in der
Registrierungsdatenbank festgehalten. Auf Anfrage eines Clients liefert die
COM-Bibliothek eine
Liste alle
COM-Klassen einer Kompo-nentenkategorie. Dies ist kein Trader-Mechanismus, da der Client außer der
GUID der
Komponentenkategorie keine Kriterien angeben kann und die
COM-Bibliothek auch keine Auswahl trifft.
COM-Kategorien stellen eine Möglichkeit dar,
COM-Klassen zu kategorisieren. Die Kategorisierung dient dazu, leichter feststellen zu können, ob ein COM-Client und ein COM-Server zusammenpassen. Obwohl es Klassen betrifft, die kategorisiert werden, heißt dieses Feature
Komponentenkategorien (Component Categories).
Ein Client, der eine bestimmte Schnittstelle benötigt, aber keine
COM-Klasse kennt, die diese implementiert, müsste normalerweise jede Klasse instanziieren und mit Hilfe von QueryInterface() anfragen, ob die betreffende Schnittstelle implementiert wird. Sofern der Client nicht nur eine einzelne Schnittstelle, sondern einen Satz von Schnittstellen benötigt, müsste er QueryInterface() bei jeder Klasse entsprechend oft aufrufen.
Durch die Zuordnung einer
COM-Klasse zu einer Kategorie kann in der Registry hinterlegt werden, dass eine
COM-Klasse einen bestimmten Satz von Schnittstellen implementiert. Ein Client muss dann lediglich in der Registry nach der entsprechenden Kategorie suchen.