IFilterRequestCallback::RequestFilter

Requests that the filter that is provided by the destination provider be used by the source provider during change enumeration.

HRESULT RequestFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

Parameters

Term

Definition

pFilter

[in] The filter that is specified by the destination provider. This filter is passed to the source provider to be used during change enumeration.

filteringType

[in] Indicates the type of information that is included in a change batch during filtered synchronization.

Return Value

  • S_OK.

  • E_POINTER.

  • SYNC_E_FILTER_NOT_SUPPORTED when the filter that is specified by pFilter is not supported by the source provider. This is also returned when the source provider does not implement ISupportFilteredSync.

Remarks

Filter negotiation is achieved by using the following steps:

  1. Before the source provider begins enumerating changes, Sync Framework starts filter negotiation by calling IRequestFilteredSync::SpecifyFilter on the destination provider.

  2. During processing of IRequestFilteredSync::SpecifyFilter, the destination provider passes filters to IFilterRequestCallback::RequestFilter.

  3. During processing of IFilterRequestCallback::RequestFilter, Sync Framework calls ISupportFilteredSync::AddFilter on the source provider. If the source provider does not support the requested filter, the destination provider can continue to request filters until it finds one that is supported.

When a filter has been successfully negotiated, the source provider uses it to determine which items to include during change enumeration.

See Also

Reference

IFilterRequestCallback Interface
IRequestFilteredSync Interface
ISupportFilteredSync Interface