共用方式為


IAsynchronousNotifyingChangeApplier::ApplyChanges

針對變更的批次執行衝突偵測、衝突處理和變更套用。

HRESULT ApplyChanges( 
  CONFLICT_RESOLUTION_POLICY resolutionPolicy,
  ISyncChangeBatch *pSourceChanges,
  IUnknown * pUnkDataRetriever,
  IEnumSyncChanges * pDestinationVersions,
  ISyncKnowledge *pDestinationKnowledge,
  IForgottenKnowledge *pDestinationForgottenKnowledge,
  IAsynchronousNotifyingChangeApplierTarget * pChangeApplierTarget,
  ISyncSessionState * pSessionState,
  ISyncCallback *pCallback);

參數

  • resolutionPolicy
    [in] 要用來解決衝突的原則。
  • pSourceChanges
    [in] 來源提供者的變更批次。
  • pUnkDataRetriever
    [in] 可用來從來源複寫中擷取項目資料的物件。
  • pDestinationVersions
    [in] 包含此目的地複寫內儲存之項目版本的變更清單。這些項目會對應至 pSourceChanges 中的項目。
  • pDestinationKnowledge
    [in] 目的地複寫的知識。
  • pDestinationForgottenKnowledge
    [in] 目的地複寫的被遺忘知識。
  • pChangeApplierTarget
    [in] 將要針對儲存變更和衝突所呼叫的物件。
  • pSessionState
    [in] 有關目前工作階段的狀態資訊。
  • pCallback
    [in] 將會接收有關變更套用事件之通知的回呼。

傳回值

  • S_OK

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_OBJECT_NEEDS_STATE

  • SYNC_E_INTERNAL_ERROR

  • SYNC_E_CHANGE_COUNT_MISMATCH

  • SYNC_E_CHANGE_NEEDS_KNOWLEDGE

  • SYNC_E_ITEM_HAS_NO_CHANGE_UNITS

  • SYNC_E_CHANGE_NOT_IN_KNOWLEDGE

  • SYNC_E_CHANGE_UNIT_COUNT_MISMATCH

  • SYNC_E_NOT_EXPECTED_CHANGE

  • SYNC_E_ITEM_MUST_EXIST

  • SYNC_E_ID_FORMAT_MISMATCH

  • SYNC_E_BATCH_NEEDS_KNOWLEDGE

備註

通常這個方法是由提供者從它的 IKnowledgeSyncProvider::ProcessChangeBatch 方法呼叫。

這個方法會偵測 pSourceChanges 中所傳送變更與目的地複寫中對應項目之間發生的衝突。它會根據 resolutionPolicy 所指定的原則,解決任何衝突。如果有必要,這個方法便會呼叫 pChangeApplierTarget 上的方法,將變更儲存至目的地複寫,並且儲存未解決的衝突。

如果 pDestinationKnowledge 是 NULL,Sync Framework 就會針對 pSourceChanges 中每個項目,呼叫 pChangeApplierTarget 上的 IASynchronousNotifyingChangeApplierTarget::GetDestinationVersion

請參閱

參考

IAsynchronousNotifyingChangeApplier 介面
CONFLICT_RESOLUTION_POLICY 列舉