由衍生類別實作時,會設定來源提供者用於變更列舉的篩選。
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 以外的錯誤時,目的地提供者通常會結束同步處理工作階段。