Komponentenkategorien und deren Funktionsweise

Komponentenkategorien identifizieren die Funktionsbereiche, die eine Softwarekomponente unterstützt und erfordert. Für jede Kategorie oder jeden bestimmten Funktionsbereich wird ein Registrierungseintrag verwendet. Jede Komponentenkategorie wird durch einen global eindeutigen Bezeichner (Globally Unique Identifier, GUID) identifiziert. Wenn ein Steuerelement installiert wird, registriert es sich selbst als Steuerelement in der Systemregistrierung, indem es die Komponentenkategorie-ID für die Steuerung verwendet. Weitere Informationen finden Sie unter Selbstregistrierung für Steuerelemente. Innerhalb der Selbstregistrierung von Steuerelementen werden auch die Komponentenkategorien registriert, die implementiert werden, und die Komponentenkategorien, die ein Container unterstützen muss, um das Steuerelement erfolgreich zu hosten.

Wenn ein Steuerelementcontainer dem Benutzer Steuerelemente zum Einfügen bereitstellt, kann er nur die Steuerelemente auswählen und instanziieren, die in dieser Umgebung ordnungsgemäß funktionieren. Wenn der Steuerelementcontainer beispielsweise keine Datenbindung unterstützt, erlaubt der Container dem Benutzer nicht, die Steuerelemente auszuwählen und zu instanziieren, die über einen Eintrag in der Registrierung verfügen, der angibt, dass sie die Kategorie der Datenbindungskomponente benötigen. Ein allgemeines Dialogfeld zum Einfügen von Steuerelementen und APIs zum Behandeln der Registrierungseinträge ist verfügbar.

Komponentenkategorien sind nicht kumulativ oder exklusiv, ein Steuerelement kann eine beliebige Kombination von Komponentenkategorien erfordern, um zu funktionieren. Ein Steuerelement, das keine erforderlichen Einträge für Komponentenkategorien aufweist, kann erwartet werden, dass es in jedem Steuerungscontainer funktioniert und keine spezifische Funktionalität eines Steuerelementcontainers benötigt, um zu funktionieren.

Hier werden die folgenden Komponentenkategorien angegeben, bei Bedarf können detailliertere Spezifikationen der Kategorien vorliegen.

Dies ist keine endgültige Liste der Kategorien; Weitere Kategorien werden voraussichtlich in Zukunft definiert, wenn neue Anforderungen identifiziert werden. Eine aktuelle Liste der Komponentenkategorien ist bei Microsoft verfügbar. Diese Liste enthält die Komponentenkategorien, die von Microsoft und allen anderen Anbietern identifiziert wurden, die Microsoft informiert haben.

Es ist wichtig, daran zu denken, dass Steuerelemente versuchen sollten, in so vielen Umgebungen wie möglich zu arbeiten. Wenn dies möglich ist, sollte das Steuerelement seine Funktionalität beeinträchtigen, wenn es in einem Container platziert wird, der bestimmte Schnittstellen nicht unterstützt. Der Zweck von Komponentenkategorien besteht darin, eine Situation zu verhindern, in der das Steuerelement in einer umgebung platziert wird, die ungeeignet ist und das Steuerelement seine gewünschte Aufgabe nicht erfüllen kann. Im Allgemeinen sollte ein Steuerelement ordnungsgemäß herabgestuft werden, wenn keine Schnittstellen vorhanden sind. Ein Steuerelement kann dem Benutzer mit einem Meldungsfeld mitteilen, dass einige Funktionen nicht verfügbar sind, oder die Funktionalität, die für eine optimale Leistung erforderlich ist, deutlich dokumentieren.

Beachten Sie, dass ältere Steuerelemente und Container keine Komponentenkategorien verwenden und sich stattdessen darauf verlassen, dass das Steuerelement Schlüsselwort (keyword) für das Steuerelement in der Registrierung vorhanden ist. Um von älteren Containern erkannt zu werden, die möglicherweise das Steuerelement Schlüsselwort (keyword) in der Registrierung registrieren möchten, sollten Steuerungsentwickler überprüfen, ob das Steuerelement erfolgreich in solchen Containern gehostet werden kann, bevor dies geschieht. Container, die Komponentenkategorien verwenden, können sie erfolgreich zum Hosten älterer Steuerelemente verwenden, da die Komponentenkategorie-DLL die Zuordnung verarbeitet. Für ältere Steuerelemente CATID_ControlV1 ist eine separate Kategorie vorhanden, sodass ein Container sie bei Bedarf optional ausschließen kann.

Da Komponentenkategorien durch GUIDs identifiziert werden, ist es möglich, dass Container mit bestimmten spezifischen Funktionen über eigene Kategorie-IDs verfügen, die mithilfe eines GUID-Generierungstools generiert werden. Dies kann jedoch möglicherweise den Vorteil der Interoperabilität von Steuerelementen und Containern untergraben, sodass es bevorzugt wird, nach Möglichkeit vorhandene Komponentenkategorien zu verwenden. Anbieter werden aufgefordert, sich bei der Definition neuer Komponentenkategorien zusammenzusprechen, um sicherzustellen, dass sie die allgemeinen Anforderungen des Marketplace erfüllen und dem Geist der Interoperabilität von ActiveX-Steuerelementen folgen.

Komponentenkategorien