ISupportFilteredSync::AddFilter

由派生类实现时,设置由源提供程序用于变更枚举的筛选器。

HRESULT AddFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

参数

术语

定义

pFilter

[in] 由源提供程序用于变更枚举的筛选器。

filteringType

[in] 指示筛选同步过程中变更批中包含的信息的类型。

返回值

  • S_OK。

  • 如果 pFilter 指定的筛选器类型不受支持,则返回值为 SYNC_E_FILTER_NOT_SUPPORTED。

  • 提供程序确定的错误代码。

备注

执行以下步骤可实现筛选器协商:

  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 接口