Creación de un filtro de publicador
Hay dos métodos para establecer el filtro de publicador: mediante la propiedad MultiPublisherFilterCLSID de la clase de eventos, o mediante IEventControl::SetPublisherFilter.
- Dado que permite componer el objeto de evento con el servicio de componentes en cola COM+ , el método preferido es usar la propiedad MultiPublisherFilterCLSID en la clase de eventos para establecer el filtro del publicador. Esto establece un objeto de filtro para todos los métodos de las interfaces de eventos para un objeto de evento. El objeto de evento activa el filtro del publicador cuando se crea una instancia del objeto de clase de evento mediante CoCreateInstance.
- También puede usar SetPublisherFilter. Sin embargo, si elige este método, la interfaz no se puede poner en cola y, por tanto, no puede usar el objeto de evento con el servicio de componentes en cola COM+ entre el publicador y el objeto de clase de eventos. Para obtener más información sobre el uso del servicio de componentes en cola con eventos COM+, consulte Uso de eventos COM+ con componentes en cola de COM+.
Un evento puede tener uno o varios objetos de filtro o ninguno en absoluto. Los objetos de filtro del publicador deben admitir IPublisherFilter o IMultiInterfacePublisherFilter, en función de si tiene una sola interfaz de activación o varias interfaces de activación en el objeto de clase de evento. Las interfaces IPublisherFilter e IMultiInterfacePublisherFilter especifican un método Initialize . El objeto de clase de eventos llama al método Initialize inmediatamente después de crear el objeto de filtro.
Eventos COM+ intenta invocar dos métodos en el filtro. En primer lugar, llama a IPublisherFilter::P repareToFire y pasa un puntero de interfaz IFiringControl al filtro. A continuación, consulta el objeto de filtro para la interfaz de eventos. Si el filtro admite la interfaz de eventos, invoca un método en él. Esto proporciona acceso a los parámetros del publicador para un evento. El filtro puede usar estos parámetros para determinar qué suscripciones se activarán.
Temas relacionados