ISaveChangeContext::GetChangeFromDestinationVersions
同期先プロバイダが変更適用元に指定した元のバージョンを格納するオブジェクトを取得します。
HRESULT GetChangeFromDestinationVersions(
ISyncChange ** ppChangeFromDestinationVersions);
パラメータ
- ppChangeFromDestinationVersions
[out] 同期先プロバイダが変更適用元に指定した元のバージョンを格納するオブジェクトを返します。
戻り値
S_OK
E_POINTER
SYNC_E_INTERNAL_ERROR
解説
このメソッドは、オプティミスティック同時実行制御チェックを実装するために使用できます。これを行うには、同期先プロバイダは、ppChangeFromDestinationVersions に格納されているバージョンと、メタデータ内の現在のバージョンを比較します。バージョンが異なる場合、変更の適用が開始された時刻と ISynchronousNotifyingChangeApplierTarget::SaveChange が呼び出された時刻の間で、同期先レプリカの項目が変更されています。この場合、同期先プロバイダは ISaveChangeContext::SetRecoverableErrorOnChange を使用してエラーを報告する必要がありますが、この変更のメタデータやデータは適用しないでください。この同時実行制御チェックは、チェックの実行前に、メタデータ ストアで両方のバージョンが更新されている場合のみ有効です。たとえば、項目ストアで項目の変更が行われる間にメタデータ ストアでバージョンが更新されるシステムは、これに該当します。