共用方式為


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 介面