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


IRequestFilteredSync::SpecifyFilter

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

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Параметры

  • pCallback
    [in] Интерфейс обратного вызова, который использует поставщик назначения, чтобы запросить фильтр для использования поставщиком источника в ходе перечисления изменений.

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

  • S_OK

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

Замечания

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

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

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

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

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

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

Реализация этого метода может повторно вызывать IFilterRequestCallback::RequestFilter, пока не будет найден фильтр, поддерживаемый как поставщиком источника, так и поставщиком назначения. Поставщик источника указывает, что не поддерживает фильтр, возвращая значение SYNC_E_FILTER_NOT_SUPPORTED в ответ на вызов ISupportFilteredSync::AddFilter.

Если ISupportFilteredSync::AddFilter возвращает ошибку, отличную от SYNC_E_FILTER_NOT_SUPPORTED, IRequestFilteredSync::SpecifyFilter должен возвратить ошибку в Sync Framework. На этом сеанс синхронизации завершается.

См. также

Справочник

Интерфейс IRequestFilteredSync
Интерфейс ISupportFilteredSync
Интерфейс IFilterRequestCallback