Partager via


ISupportFilteredSync::AddFilter

Définit le filtre utilisé pour l'énumération des modifications par le fournisseur de source en cas d'implémentation par une classe dérivée.

HRESULT AddFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

Paramètres

Terme

Définition

pFilter

[in] Filtre utilisé pour l'énumération des modifications par le fournisseur de source.

filteringType

[in] Indique le type d'informations incluses dans un lot de modifications pendant la synchronisation filtrée.

Valeur de retour

  • S_OK.

  • SYNC_E_FILTER_NOT_SUPPORTED lorsque le type de filtre spécifié par pFilter n'est pas pris en charge.

  • 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 examiner le filtre spécifié par pFilter et filteringType, et retourner SYNC_E_FILTER_NOT_SUPPORTED pour indiquer que le filtre n'est pas pris en charge. Le fournisseur de destination peut alors demander différents filtres jusqu'à ce qu'un filtre pris en charge soit trouvé.

En règle générale, le fournisseur de destination termine la session de synchronisation lorsque ISupportFilteredSync::AddFilter retourne une erreur autre que SYNC_E_FILTER_NOT_SUPPORTED.

Voir aussi

Référence

Interface ISupportFilteredSync