Partager via


IRequestFilteredSync::SpecifyFilter

En cas d'implémentation par une classe dérivée, négocie le filtre qui est utilisé par le fournisseur de source pendant l'énumération des modifications.

Syntaxe

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Paramètres

  • pCallback
    [in] Interface de rappel utilisée par le fournisseur de destination pour demander qu'un filtre soit utilisé par le fournisseur de source pendant l'énumération des modifications.

Valeur de retour

  • S_OK

  • Codes d'erreur déterminés par le fournisseur.

Notes

Pour négocier l'utilisation des filtres, procédez comme suit :

  1. Avant que le fournisseur de source commence à énumérer les modifications, Sync Framework démarre la négociation des filtres en appelant IRequestFilteredSync::SpecifyFilter sur le fournisseur de destination.

  2. Pendant le traitement de IRequestFilteredSync::SpecifyFilter, le fournisseur de destination passe des filtres à IFilterRequestCallback::RequestFilter.

  3. Pendant le traitement de IFilterRequestCallback::RequestFilter, Sync Framework appelle ISupportFilteredSync::AddFilter sur le fournisseur de source. Si le fournisseur de source ne prend pas en charge le filtre demandé, le fournisseur de destination peut continuer à demander des filtres jusqu'à ce qu'il en trouve un pris en charge.

Lorsqu'un filtre a été négocié avec succès, le fournisseur de source l'utilise pour déterminer les éléments à inclure pendant l'énumération des modifications.

Remarques à l'attention des implémenteurs

Une implémentation de cette méthode peut appeler à plusieurs reprises IFilterRequestCallback::RequestFilter jusqu'à ce qu'un filtre pris en charge aussi bien par le fournisseur de destination que par le fournisseur de source soit trouvé. Le fournisseur de source indique qu'il ne prend pas en charge de filtre en retournant SYNC_E_FILTER_NOT_SUPPORTED en réponse à l'appel ISupportFilteredSync::AddFilter.

Lorsque ISupportFilteredSync::AddFilter retourne une erreur autre que SYNC_E_FILTER_NOT_SUPPORTED, IRequestFilteredSync::SpecifyFilter doit retourner l'erreur à Sync Framework. Cette opération met fin à la session de synchronisation.

Voir aussi

Autres ressources

Interface IRequestFilteredSync

Interface ISupportFilteredSync

Interface IFilterRequestCallback