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 によって指定された変更を同期先プロバイダーがどのように適用するかを決定したりできます。