Creazione di un filtro del server di pubblicazione
Esistono due metodi per stabilire il filtro dell'editore: usando la proprietà MultiPublisherFilterCLSID della classe di evento oppure usando IEventControl::SetPublisherFilter.
- Poiché consente di comporre l'oggetto evento con il servizio di componenti in coda COM+ , il metodo preferito consiste nell'utilizzare la proprietà MultiPublisherFilterCLSID nella classe di evento per impostare il filtro del pubblicatore. In questo modo viene stabilito un oggetto filtro per tutti i metodi delle interfacce evento per un oggetto evento. L'oggetto evento attiva il filtro del publisher quando viene creata un'istanza dell'oggetto classe evento usando CoCreateInstance.
- È anche possibile usare SetPublisherFilter. Tuttavia, se si sceglie questo metodo, l'interfaccia non è accodabile e pertanto non può utilizzare l'oggetto evento con il servizio di componenti in coda COM+ tra l'emittente e l'oggetto della classe di evento. Per ulteriori informazioni sull'uso del servizio Componenti Accodati con gli eventi COM+, vedere Uso degli eventi COM+ con i Componenti Accodati COM+.
Un evento può avere uno o più oggetti filtro, o anche nessuno. Gli oggetti filtro del pubblicatore devono supportare IPublisherFilter o IMultiInterfacePublisherFilter, a seconda che sia presente una singola interfaccia di esecuzione o più interfacce di esecuzione sull'oggetto classe evento. Le interfacce IPublisherFilter e IMultiInterfacePublisherFilter specificano entrambi un metodo Initialize. Il metodo Initialize viene chiamato dall'oggetto classe di evento immediatamente dopo la creazione dell'oggetto filtro.
Gli eventi COM+ tentano di richiamare due metodi sul filtro. Prima di tutto chiama IPublisherFilter::PrepareToFire e passa al filtro un puntatore dell'interfaccia IFiringControl. Quindi interroga l'oggetto filtro sull'interfaccia dell'evento. Se il filtro supporta l'interfaccia evento, richiama un metodo su di esso. In questo modo viene fornito l'accesso ai parametri del server di pubblicazione per un evento. Il filtro può usare questi parametri per determinare le sottoscrizioni da attivare.
Argomenti correlati