Freigeben über


Das COM+-Ereignisklassenobjekt

Der COM+-Ereignisdienst verwendet ein Ereignisklassenobjekt , um die Verbindung zwischen Herausgeber und Abonnenten zu verwalten. Das Ereignisklassenobjekt ist eine COM+-Komponente, die vom COM+-Ereignissystem verwaltet und gespeichert wird und die Schnittstellen und Methoden enthält, die von einem Herausgeber zum Auslösen von Ereignissen verwendet werden. Es handelt sich um ein persistentes Objekt, das die Ereignisse angibt, die auftreten können, und optional den Herausgeber identifiziert. Sie geben die Schnittstellen und Methoden an, die eine Ereignisklasse enthalten soll, indem Sie eine Typbibliothek bereitstellen.

Um ein Ereignis auszulösen, instanziiert der Herausgeber das Ereignisklassenobjekt, indem er CoCreateInstance oder die Microsoft Visual Basic CreateObject-Methode aufruft und anfordert, die Ereignisschnittstelle zurückzugeben. Das instanziierte Ereignisklassenobjekt enthält die Implementierung der angeforderten Schnittstelle durch das Ereignissystem. Ein interessierter Abonnent muss auch die Ereignisklassenschnittstelle implementieren, um Ereignisse von einem bestimmten Herausgeber zu empfangen. Wenn das Ereignisklassenobjekt instanziiert wird, ordnet es das Ereignissystem den entsprechenden Abonnenten zu. Die Liste der Abonnenten wird für die Lebensdauer des Ereignisklassenobjekts verwaltet. Ein Ereignis kann an mehrere Abonnenten entweder seriell oder parallel übermittelt werden.

Wenn Sie ein Ereignisklassenobjekt implementieren, sollten Sie eine sich selbst registrierende DLL bereitstellen, die die Funktionen DllRegisterServer und DllUnregisterServer exportiert. Die DllRegisterServer-Funktion registriert eine COM-Klasse, und die DllUnregisterServer-Funktion hebt die Registrierung der Komponente auf. Ereignisklassenobjekte werden im COM+-Katalog gespeichert, entweder mithilfe des Component Services-Verwaltungstools oder programmgesteuert mithilfe der Methoden der Schnittstellen ICOMAdminCatalog::InstallEventClass oder ICOMAdminCatalog::InstallMultipleEventClasses . Ausführliche Informationen zum Registrieren von Ereignisklassenobjekten finden Sie unter Registrieren einer Ereignisklasse.

Da Ereignisklassenobjekte konfigurierte Komponenten sind, können andere Attribute, z. B. Warteschlangen, Transaktionen, Sicherheit usw., mithilfe des Component Services-Verwaltungstools oder der COM+-Verwaltungs-SDK-Funktionen für sie konfiguriert werden.

Hinweis

Der COM+-Ereignisdienst verwendet Typbibliotheksmaralling. Dadurch gelten einige Einschränkungen für Ereignisklassenschnittstellen. Der Typbibliothek marshaller unterstützt beispielsweise nicht die MIDL-Attribute size_is und length_is.

 

Ein Ereignisklassenobjekt besitzt Veröffentlichungsattribute, die die Art und Weise bestimmen, wie Ereignisse veröffentlicht werden, sowie die folgenden Eigenschaften:

  • EventCLSID. Ein eindeutiger Bezeichner, der die CLSID der Komponente angibt.
  • EventClassName. Ein eindeutiger Bezeichner, der die PROGID der Komponente angibt.
  • TypeLibrary. Stellt eine Liste der Schnittstellen bereit, die vom Ereignisklassenobjekt angeboten werden. Es ist nicht erforderlich, die in der Typbibliothek angegebenen Auslösungsschnittstellen zu implementieren.

Überlegungen zur Com+-Ereignissicherheit

Filtern von Ereignissen in COM+

Veröffentlichen und Übermitteln von Ereignissen in COM+

Abonnements

Verwenden von COM+-Ereignissen mit COM+-Komponenten in der Warteschlange