共用方式為


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,直到找到目的地提供者和來源提供者同時支援的篩選為止。為了回應 ISupportFilteredSync::AddFilter 呼叫,來源提供者會透過傳回 SYNC_E_FILTER_NOT_SUPPORTED,表示它不支援篩選。

ISupportFilteredSync::AddFilter 傳回 SYNC_E_FILTER_NOT_SUPPORTED 以外的錯誤時,IRequestFilteredSync::SpecifyFilter 應該會將此錯誤傳回給 Sync Framework。這樣會結束同步處理工作階段。

請參閱

參考

IRequestFilteredSync 介面
ISupportFilteredSync 介面
IFilterRequestCallback 介面