ISupportFilteredSync::AddFilter
由派生类实现时,设置由源提供程序用于变更枚举的筛选器。
HRESULT AddFilter(
IUnknown * pFilter,
FILTERING_TYPE filteringType);
参数
术语 |
定义 |
pFilter |
[in] 由源提供程序用于变更枚举的筛选器。 |
filteringType |
[in] 指示筛选同步过程中变更批中包含的信息的类型。 |
返回值
S_OK。
如果 pFilter 指定的筛选器类型不受支持,则返回值为 SYNC_E_FILTER_NOT_SUPPORTED。
提供程序确定的错误代码。
备注
执行以下步骤可实现筛选器协商:
在源提供程序开始枚举变更之前,Sync Framework 会通过对目标提供程序调用 IRequestFilteredSync::SpecifyFilter 来启动筛选器协商。
在处理 IRequestFilteredSync::SpecifyFilter 的过程中,目标提供程序会将筛选器传递给 IFilterRequestCallback::RequestFilter。
在处理 IFilterRequestCallback::RequestFilter 的过程中,Sync Framework 将对源提供程序调用 ISupportFilteredSync::AddFilter。如果源提供程序不支持请求的筛选器,则目标提供程序会继续请求筛选器,直到找到一个受支持的筛选器。
成功协商筛选器后,源提供程序使用该筛选器来确定在变更枚举的过程中要包含哪些项。
实施者注意事项
此方法的实现可检查通过 pFilter 和 filteringType 指定的筛选器,如果返回 SYNC_E_FILTER_NOT_SUPPORTED,则指示不支持该筛选器。然后,目标提供程序可请求其他筛选器,直到找到一个受支持的筛选器。
如果从 ISupportFilteredSync::AddFilter 返回 SYNC_E_FILTER_NOT_SUPPORTED 之外的错误,则目标提供程序通常会结束同步会话。