Condividi tramite


IRequestFilteredSync::SpecifyFilter

In caso di implementazione da una classe derivata, negozia quale filtro viene utilizzato dal provider di origine durante l'enumerazione delle modifiche.

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Parametri

  • pCallback
    [in] Interfaccia di callback utilizzata dal provider di destinazione per richiedere che un filtro venga utilizzato dal provider di origine durante l'enumerazione delle modifiche.

Valore restituito

  • S_OK

  • 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ò chiamare ripetutamente IFilterRequestCallback::RequestFilter finché non viene trovato un filtro supportato sia dal provider di destinazione sia dal provider di origine. Il provider di origine indica che non supporta un filtro restituendo SYNC_E_FILTER_NOT_SUPPORTED in risposta alla chiamata ISupportFilteredSync::AddFilter.

Se ISupportFilteredSync::AddFilter restituisce un errore diverso da SYNC_E_FILTER_NOT_SUPPORTED, IRequestFilteredSync::SpecifyFilter deve restituire l'errore a Sync Framework. Ciò termina la sessione di sincronizzazione.

Vedere anche

Riferimento

Interfaccia IRequestFilteredSync
Interfaccia ISupportFilteredSync
Interfaccia IFilterRequestCallback