Share via


Objet de classe d’événements COM+

Le service Événements COM+ utilise un objet de classe d’événements pour gérer la connexion entre le serveur de publication et l’abonné. L’objet de classe d’événements est un composant COM+ géré et stocké par le système d’événements COM+ et qui contient les interfaces et les méthodes utilisées par un éditeur pour déclencher des événements. Il s’agit d’un objet persistant qui indique les événements qui peuvent se produire et, éventuellement, identifie le serveur de publication. Vous spécifiez les interfaces et les méthodes que vous souhaitez qu’une classe d’événements contienne en fournissant une bibliothèque de types.

Pour déclencher un événement, l’éditeur instancie l’objet de classe d’événements en appelant CoCreateInstance ou la méthode CreateObject Microsoft Visual Basic et en demandant le retour de l’interface d’événement. L’objet de classe d’événements instancié contient l’implémentation du système d’événements de l’interface demandée. Un abonné intéressé doit également implémenter l’interface de classe d’événements pour recevoir des événements d’un éditeur donné. Lorsque l’objet de classe d’événements est instancié, le système d’événements l’associe aux abonnés appropriés. La liste des abonnés est conservée pendant la durée de vie de l’objet de classe d’événements. Un événement peut être remis à plusieurs abonnés en série ou en parallèle.

Lorsque vous implémentez un objet de classe d’événements, vous devez fournir une DLL auto-inscrite qui exporte les fonctions DllRegisterServer et DllUnregisterServer . La fonction DllRegisterServer inscrit une classe COM et la fonction DllUnregisterServer annule l’inscription du composant. Les objets de classe d’événements sont stockés dans le catalogue COM+, soit à l’aide de l’outil d’administration des services de composants, soit par programme à l’aide des méthodes des interfaces ICOMAdminCatalog::InstallEventClasses ou ICOMAdminCatalog::InstallMultipleEventClasses . Pour plus d’informations sur l’inscription d’objets de classe d’événements, consultez Inscription d’une classe d’événements.

Étant donné que les objets de classe d’événements sont des composants configurés, d’autres attributs, tels que la mise en file d’attente, les transactions, la sécurité, etc., peuvent être configurés pour eux à l’aide de l’outil d’administration des services de composants ou des fonctions du Kit de développement logiciel (SDK) d’administration COM+.

Notes

Le service Événements COM+ utilise le marshaling de bibliothèque de types. Cela impose certaines restrictions aux interfaces de classe d’événements. Par exemple, le marshaleur de bibliothèque de types ne prend pas en charge les attributs MIDL size_is et length_is.

 

Un objet de classe d’événements possède des attributs de publication qui déterminent la façon dont les événements sont publiés, ainsi que les propriétés suivantes :

  • EventCLSID. Identificateur unique qui spécifie le CLSID du composant.
  • EventClassName. Identificateur unique qui spécifie le PROGID du composant.
  • TypeLibrary. Fournit la liste des interfaces offertes par l’objet de classe d’événements. Il n’est pas nécessaire d’implémenter les interfaces de déclenchement spécifiées dans la bibliothèque de types.

Considérations relatives à la sécurité des événements COM+

Filtrage des événements dans COM+

Publication et distribution d’événements dans COM+

Abonnements

Utilisation d’événements COM+ avec des composants mis en file d’attente COM+