Share via


O objeto de classe de evento COM+

O serviço COM+ Events usa um objeto de classe de evento para gerenciar a conexão entre o editor e o assinante. O objeto de classe de evento é um componente COM+ que é gerenciado e armazenado pelo sistema COM+ Events e contém as interfaces e métodos usados por um editor para disparar eventos. É um objeto persistente que indica os eventos que podem ocorrer e, opcionalmente, identifica o editor. Você especifica as interfaces e os métodos que deseja que uma classe de evento contenha fornecendo uma biblioteca de tipos.

Para disparar um evento, o editor instancia o objeto de classe de evento chamando CoCreateInstance ou o método CreateObject do Microsoft Visual Basic e solicitando que a interface do evento seja retornada. O objeto de classe de evento instanciado contém a implementação do sistema de eventos da interface solicitada. Um assinante interessado também deve implementar a interface de classe de evento para receber eventos de um determinado editor. Quando o objeto de classe de evento é instanciado, o sistema de eventos o associa aos assinantes apropriados. A lista de assinantes é mantida durante o tempo de vida do objeto de classe de evento. Um evento pode ser entregue a vários assinantes em série ou em paralelo.

Quando você implementa um objeto de classe de evento, você deve fornecer uma DLL de auto-registro que exporta as funções DllRegisterServer e DllUnregisterServer. A função DllRegisterServer registra uma classe COM e a função DllUnregisterServer cancela o registro do componente. Os objetos de classe de evento são armazenados no catálogo COM+, usando a ferramenta de administração Serviços de Componentes ou programaticamente usando os métodos das interfaces ICOMAdminCatalog::InstallEventClass ou ICOMAdminCatalog::InstallMultipleEventClasses. Para obter informações detalhadas sobre como registrar objetos de classe de evento, consulte Registrando uma classe de evento.

Como os objetos de classe de evento são componentes configurados, outros atributos, como enfileiramento, transações, segurança e assim por diante, podem ser configurados para eles usando a ferramenta de administração Serviços de Componentes ou as funções do SDK Administrativo COM+.

Observação

O serviço COM+ Events usa empacotamento de biblioteca de tipos. Isso coloca algumas restrições nas interfaces de classe de evento. Por exemplo, o marshaler de biblioteca de tipos não oferece suporte aos atributos MIDL size_is e length_is.

 

Um objeto de classe de evento possui atributos de publicação que determinam a maneira como os eventos são publicados, bem como as seguintes propriedades:

  • EventCLSID. Um identificador exclusivo que especifica o CLSID do componente.
  • EventClassName. Um identificador exclusivo que especifica o PROGID do componente.
  • TypeLibrary. Fornece uma lista de interfaces oferecidas pelo objeto de classe de evento. Não há necessidade de implementar as interfaces de disparo especificadas na biblioteca de tipos.

Considerações de segurança de eventos COM+

Filtrando eventos no COM+

Publicação e entrega de eventos em COM+

Assinaturas

Usando eventos COM+ com componentes em fila COM+