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。
如果 IChangeApplicationContext 物件已經處於使用中狀態,則為 SYNC_E_ACTIVE_CHANGE_APPLICATION_CONTEXT。您必須處理使用中的 IChangeApplicationContext 物件,直到其 IChangeApplicationContext::GetChangeApplicationAction 方法傳回 CAA_FINISHED 為止,然後才能處理其他變更。
如果 pSourceChange 不包含建立方式知識,則為 SYNC_E_CHANGE_NEEDS_KNOWLEDGE。
如果 pSourceChange 的更新版本或建立版本沒有包含在其建立方式知識中,則為 SYNC_E_CHANGE_NOT_IN_KNOWLEDGE。
如果 pSourceChange 和 pDestinationVersion 包含不同的變更單位數目,則為 SYNC_E_CHANGE_UNIT_COUNT_MISMATCH。
當指定之識別碼的格式與初始化此物件時所指定的識別碼格式結構描述不符時,則為 SYNC_E_ID_FORMAT_MISMATCH。
如果變更批次的變更套用尚未啟動,或者 pSourceChange 已經報告成套用成功,則為 SYNC_E_INVALID_OPERATION。
如果 pSourceChange 或 pDestinationVersion 包含變更單位,而其他項目卻沒有包含,則為 SYNC_E_ITEM_HAS_CHANGE_UNITS。
如果 pSourceChange 和 pDestinationVersion 參考不同的項目識別碼,則為 SYNC_E_NOT_EXPECTED_CHANGE。
備註
目的地提供者通常會針對從來源提供者所傳送的每個變更呼叫這個方法一次。所傳回的 IChangeApplicationContext 物件可用來執行衝突偵測、衝突解決,以及判斷目的地提供者應該如何套用 pSourceChange 所指定的變更。