將資料擷取器從相關聯之提供者的格式轉換為所需的資料擷取器格式。只有當同步處理工作階段中的一個或兩個提供者使用 ISynchronousDataRetriever 或 IAsynchronousDataRetriever 以外的介面來擷取資料時,才需要使用這個方法。
HRESULT ConvertDataRetrieverFromProviderFormat(
IUnknown * pUnkDataRetrieverIn,
IEnumSyncChanges * pEnumSyncChanges,
IUnknown ** ppUnkDataOut);
參數
- pUnkDataRetrieverIn
[in] 要轉換的資料擷取器。
- pEnumSyncChanges
[in] 代表一組項目變更的 IEnumSyncChanges 物件。
- ppUnkDataOut
[out] 已轉換的資料擷取器。
傳回值
S_OK。
如果資料擷取器會實作其中一個內建介面,並且只需要進行資料轉換,則為 E_NOTIMPL。
開發人員定義的錯誤值
如果傳回 E_NOTIMPL 以外的錯誤,同步處理工作階段就會結束並傳回錯誤碼。
備註
通常,轉換資料擷取器最有效率的方式就是建立 Proxy,以便實作所需的資料擷取器介面並且保存提供者之資料擷取器介面的指標。然後,在同步處理工作階段期間處理變更時,此 Proxy 就可以從提供者介面擷取資料。在某些情況下 (例如遠端變更套用案例),您必須先擷取所有變更、視需要轉換它們,然後使用所有內部資料來序列化資料擷取器。針對這些情況,請使用 pEnumSyncChanges 來列舉應該要序列化的所有變更。