IChangeApplicationServices::GetChangeApplicationContext

適用される現在の変更を表すオブジェクトを取得します。

HRESULT GetChangeApplicationContext(
  ISyncChange * pSourceChange,
  ISyncChange * pDestinationVersion,
  IChangeApplicationContext ** ppContext);

パラメーター

  • pSourceChange
    [in, unique] 同期元プロバイダーで受信された変更です。変更バッチが復旧同期の一部である場合は NULL に設定できます。
  • pDestinationVersion
    [in, unique] 同期先レプリカにおける pSourceChange のバージョンです。同期先レプリカが pSourceChange のバージョンを持たない場合は NULL に設定できます。
  • ppContext
    [out] 変更を処理するために使用できるオブジェクトを返します。

戻り値

  • S_OK

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_ACTIVE_CHANGE_APPLICATION_CONTEXT: IChangeApplicationContext オブジェクトが既にアクティブな場合。別の変更を処理するには、IChangeApplicationContext::GetChangeApplicationAction メソッドから CAA_FINISHED が返されるまでアクティブな IChangeApplicationContext オブジェクトを処理する必要があります。

  • SYNC_E_CHANGE_NEEDS_KNOWLEDGE: 関連付けられているナレッジが pSourceChange に含まれていない場合

  • SYNC_E_CHANGE_NOT_IN_KNOWLEDGE: pSourceChange の更新バージョンまたは作成バージョンが、関連付けられているナレッジに含まれていない場合

  • SYNC_E_CHANGE_UNIT_COUNT_MISMATCH: pSourceChange と pDestinationVersion に含まれている変更単位の数が異なる場合

  • SYNC_E_ID_FORMAT_MISMATCH: 指定された ID の形式が、このオブジェクトを初期化したときに指定された ID 形式スキーマと一致しない場合

  • SYNC_E_INVALID_OPERATION: 変更バッチに対して変更の適用が開始されていない場合、または pSourceChange が正常に適用されたことが既に報告されている場合

  • SYNC_E_ITEM_HAS_CHANGE_UNITS: pSourceChange または pDestinationVersion が変更単位を含む一方で、他方が変更単位を含まない場合

  • SYNC_E_NOT_EXPECTED_CHANGE: pSourceChange と pDestinationVersion が異なる項目 ID を参照している場合

解説

通常、このメソッドは、同期元プロバイダーから送信される各変更につき、同期先プロバイダーから 1 回呼び出されます。返される IChangeApplicationContext オブジェクトを使用して、競合の検出や解決を行ったり、pSourceChange によって指定された変更を同期先プロバイダーがどのように適用するかを決定したりできます。

参照

リファレンス

IChangeApplicationServices インターフェイス