Compartilhar via


Criando um filtro do Publisher

Há dois métodos para estabelecer o filtro de editor: usando a propriedade MultiPublisherFilterCLSID da classe de evento ou usando IEventControl::SetPublisherFilter.

Um evento pode ter um ou mais objetos de filtro ou nenhum. Os objetos de filtro do editor devem oferecer suporte a IPublisherFilter ou IMultiInterfacePublisherFilter, dependendo se você tiver uma única interface de disparo ou várias interfaces de disparo no objeto de classe de evento. As interfaces IPublisherFilter e IMultiInterfacePublisherFilter especificam um método Initialize. O método Initialize é chamado pelo objeto de classe de evento imediatamente após a criação do objeto de filtro.

COM+ Events tenta invocar dois métodos no filtro. Primeiro, ele chama IPublisherFilter::P repareToFire e passa um ponteiro de interface IFiringControl para o filtro. Em seguida, ele consulta o objeto de filtro para a interface de evento. Se o filtro oferecer suporte à interface de evento, ele invocará um método nele. Isso fornece acesso aos parâmetros do editor para um evento. O filtro pode usar esses parâmetros para determinar quais assinaturas devem ser acionadas.

Filtrando eventos no COM+