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:
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.
Durante l'elaborazione di IRequestFilteredSync::SpecifyFilter, il provider di destinazione passa i filtri a IFilterRequestCallback::RequestFilter.
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