El objeto de clase de eventos COM+
El servicio EVENTOS COM+ usa un objeto de clase de eventos para administrar la conexión entre el publicador y el suscriptor. El objeto de clase de eventos es un componente COM+ administrado y almacenado por el sistema eventos COM+ y contiene las interfaces y los métodos usados por un publicador para desencadenar eventos. Es un objeto persistente que indica los eventos que pueden producirse y, opcionalmente, identifica al publicador. Para especificar las interfaces y los métodos que desea que contenga una clase de eventos, proporcione una biblioteca de tipos.
Para desencadenar un evento, el publicador crea una instancia del objeto de clase de eventos llamando a CoCreateInstance o al método CreateObject de Microsoft Visual Basic y solicitando que se devuelva la interfaz de eventos. El objeto de clase de eventos creado por instancias contiene la implementación del sistema de eventos de la interfaz solicitada. Un suscriptor interesado también debe implementar la interfaz de clase de eventos para recibir eventos de un publicador determinado. Cuando se crea una instancia del objeto de clase de evento, el sistema de eventos lo asocia a los suscriptores adecuados. La lista de suscriptores se mantiene durante la vigencia del objeto de clase de evento. Un evento se puede entregar a varios suscriptores en serie o en paralelo.
Al implementar un objeto de clase de eventos, debe proporcionar un archivo DLL de registro automático que exporte las funciones DllRegisterServer y DllUnregisterServer . La función DllRegisterServer registra una clase COM y la función DllUnregisterServer anula el registro del componente. Los objetos de clase de evento se almacenan en el catálogo COM+, ya sea mediante la herramienta de administración servicios de componentes o mediante programación mediante los métodos de las interfaces ICOMAdminCatalog::InstallEventClass o ICOMAdminCatalog::InstallMultipleEventClasses . Para obtener información detallada sobre cómo registrar objetos de clase de eventos, vea Registro de una clase de eventos.
Dado que los objetos de clase de eventos son componentes configurados, otros atributos, como la puesta en cola, las transacciones, la seguridad, etc., se pueden configurar para ellos mediante la herramienta de administración servicios de componentes o las funciones del SDK administrativo de COM+.
Nota
El servicio Eventos COM+ usa serialización de bibliotecas de tipos. Esto coloca algunas restricciones en las interfaces de clase de eventos. Por ejemplo, el serializador de la biblioteca de tipos no admite los atributos MIDL size_is y length_is.
Un objeto de clase de evento posee atributos de publicación que determinan la forma en que se publican los eventos, así como las siguientes propiedades:
- EventCLSID. Identificador único que especifica el CLSID del componente.
- EventClassName. Identificador único que especifica el PROGID del componente.
- TypeLibrary. Proporciona una lista de interfaces ofrecidas por el objeto de clase de eventos. No es necesario implementar las interfaces de activación especificadas en la biblioteca de tipos.
Temas relacionados