Поделиться через


ISupportFilteredSync::AddFilter

Задает фильтр, используемый для перечисления изменений поставщиком источника при реализации в производном классе.

HRESULT AddFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

Параметры

Аргумент

Определение

pFilter

[in] Фильтр используется для перечисления изменений поставщиком источника.

filteringType

[in] Указывает тип данных, которые включаются в пакет изменений в ходе фильтруемой синхронизации.

Возвращаемое значение

  • S_OK.

  • SYNC_E_FILTER_NOT_SUPPORTED, если тип фильтра, заданный параметром pFilter, не поддерживается.

  • Коды ошибок, определяемые поставщиком.

Замечания

Согласование фильтров достигается выполнением следующих действий.

  1. Перед тем как поставщик источника начинает перечисление изменений, Sync Framework запускает согласование фильтров, вызывая метод IRequestFilteredSync::SpecifyFilter в поставщике назначения.

  2. В ходе обработки IRequestFilteredSync::SpecifyFilter поставщик назначения передает фильтры в метод IFilterRequestCallback::RequestFilter.

  3. В ходе обработки IFilterRequestCallback::RequestFilter Sync Framework вызывает ISupportFilteredSync::AddFilter в поставщике источника. Если поставщик источника не поддерживает запрошенный фильтр, то поставщик назначения может продолжить запрашивать фильтры до тех пор, пока не найдет поддерживаемый.

Как только согласование фильтра успешно завершено, поставщик источника пользуется им для определения элементов, которые необходимо включить в процесс перечисления изменений.

Примечания по реализации

Реализация этого метода обеспечивает анализ фильтра, указанного параметрами pFilter и filteringType, и возвращает значение SYNC_E_FILTER_NOT_SUPPORTED, чтобы показать, что данный фильтр не поддерживается. Поставщик назначения может запрашивать различные фильтры до тех пор, пока не будет найден поддерживаемый.

Поставщик назначения обычно завершает сеанс синхронизации, если из ISupportFilteredSync::AddFilter возвращена ошибка, отличная от SYNC_E_FILTER_NOT_SUPPORTED.

См. также

Справочник

Интерфейс ISupportFilteredSync