Condividi tramite


ISupportFilteredSync::AddFilter

In caso di implementazione da una classe derivata, imposta il filtro utilizzato dal provider di origine per l'enumerazione delle modifiche.

HRESULT AddFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

Parametri

Termine

Definizione

pFilter

[in] Filtro utilizzato per l'enumerazione delle modifiche dal provider di origine.

filteringType

[in] Indica il tipo di informazioni incluso in un batch di modifiche durante la sincronizzazione filtrata.

Valore restituito

  • S_OK.

  • SYNC_E_FILTER_NOT_SUPPORTED se il tipo di filtro specificato da pFilter non è supportato.

  • Codici di errore determinati dal provider.

Osservazioni

La negoziazione del filtro viene eseguita tramite i passaggi seguenti:

  1. Prima che il provider di origine cominci a enumerare le modifiche, Sync Framework inizia la negoziazione del filtro chiamando IRequestFilteredSync::SpecifyFilter sul provider di destinazione.

  2. Durante l'elaborazione di IRequestFilteredSync::SpecifyFilter, il provider di destinazione passa i filtri a IFilterRequestCallback::RequestFilter.

  3. Durante l'elaborazione di IFilterRequestCallback::RequestFilter, Sync Framework chiama ISupportFilteredSync::AddFilter sul provider di origine. Se il provider di origine non supporta il filtro richiesto, il provider di destinazione può continuare a richiedere i filtri finché non ne trova uno supportato.

Quando un filtro è stato negoziato correttamente, il provider di origine lo utilizza per determinare quali elementi includere durante l'enumerazione delle modifiche.

Note per gli implementatori

Un'implementazione di questo metodo può esaminare il filtro specificato da pFilter e filteringType e restituisce SYNC_E_FILTER_NOT_SUPPORTED per indicare che il filtro non è supportato. Il provider di destinazione può quindi richiedere filtri diversi finché non ne viene trovato uno supportato.

Il provider di destinazione terminerà in genere la sessione di sincronizzazione quando un errore diverso da SYNC_E_FILTER_NOT_SUPPORTED viene restituito da ISupportFilteredSync::AddFilter.

Vedere anche

Riferimento

Interfaccia ISupportFilteredSync