ISaveChangeContext::GetChangeFromDestinationVersions
取得包含目的地提供者提供給變更套用者之原始版本的物件。
HRESULT GetChangeFromDestinationVersions(
ISyncChange ** ppChangeFromDestinationVersions);
參數
- ppChangeFromDestinationVersions
[out] 傳回包含目的地提供者提供給變更套用者之原始版本的物件。
傳回值
S_OK
E_POINTER
SYNC_E_INTERNAL_ERROR
備註
這個方法可用來實作開放式並行存取 (Optimistic Concurrency) 檢查。若要這樣做,目的地提供者會將 ppChangeFromDestinationVersions 物件包含的版本與其中繼資料中的目前版本進行比較。如果這些版本不相同,表示在開始變更套用與呼叫 ISynchronousNotifyingChangeApplierTarget::SaveChange 的這段時間內,目的地複寫的項目已經變更。如果發生這種情況,目的地提供者必須使用 ISaveChangeContext::SetRecoverableErrorOnChange 來報告錯誤,而且不得套用此中繼資料和這項變更的資料。請注意,必須先更新中繼資料存放區中的版本,然後再執行這項並行檢查 (例如,在中繼資料存放區中的版本已經更新、項目存放區中已進行項目變更的系統上執行檢查),這項並行檢查才會有效。