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, unique] 現在のセッションに関する状態情報です。

pCallback

[in, unique] 変更の適用イベントに関する通知を受信するコールバックです。

戻り値

  • 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 のメソッドを呼び出して、同期先レプリカに変更を保存したり、未解決の競合を保存したりします。

pDestinationVersions が NULL の場合、Sync Framework は pSourceChanges 内の項目ごとに pChangeApplierTarget で IASynchronousNotifyingChangeApplierTarget::GetDestinationVersion を呼び出します。

参照

リファレンス

IAsynchronousNotifyingChangeApplier インターフェイス
CONFLICT_RESOLUTION_POLICY 列挙体