Condividi tramite


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 o utilizzando IEventControl::SetPublisherFilter.

  • Poiché consente di comporre l'oggetto evento con il servizio componenti in coda COM+, il metodo preferito consiste nell'utilizzare la proprietà MultiPublisherFilterCLSID nella classe di evento per impostare il filtro del server di pubblicazione. 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 dell'autore quando viene creata un'istanza dell'oggetto classe di evento tramite 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 componenti in coda COM+ tra il server di pubblicazione e l'oggetto classe di evento. Per altre informazioni sull'uso del servizio componenti in coda con eventi COM+, vedere Uso di eventi COM+ con componenti in coda COM+.

Un evento può avere uno o più oggetti filtro o nessuno. Gli oggetti filtro del server di pubblicazione devono supportare IPublisherFilter o IMultiInterfacePublisherFilter, a seconda che si disponga di una singola interfaccia di attivazione o di più interfacce di attivazione sull'oggetto classe di 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::P repareToFire e passa un puntatore all'interfaccia IFiringControl al filtro. Quindi esegue una query sull'oggetto filtro per l'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.

Filtro degli eventi in COM+