將指定的合併標記加入至目前開啟的群組。
HRESULT AddMergeTombstoneMetadataToGroup(
const BYTE * pbOwnerReplicaId,
const BYTE * pbWinnerItemId,
const BYTE * pbItemId,
const SYNC_VERSION * pChangeVersion,
const SYNC_VERSION * pCreationVersion,
DWORD dwWorkForChange,
ISyncChangeBuilder ** ppChangeBuilder);
參數
- pbOwnerReplicaId
[in] 複寫識別碼,而且 pChangeVersion 和 pCreationVersion 在此複寫中必須有效。識別碼的格式必須與提供者的 ID_PARAMETERS 結構所指定的格式相符。
- pbWinnerItemId
[in] 發生合併後的項目識別碼。這也稱為成功的識別碼。識別碼的格式必須與提供者的 ID_PARAMETERS 結構所指定的格式相符。
- pbItemId
[in] 發生合併前的項目識別碼。這也稱為失敗的識別碼。識別碼的格式必須與提供者的 ID_PARAMETERS 結構所指定的格式相符。
- pChangeVersion
[in] 此變更的版本。
- pCreationVersion
[in] 由 pbItemId 識別之項目的建立版本。
- dwWorkForChange
[in] 此變更的工作量估計值。此值是用於變更套用期間,向應用程式報告已完成的工作量。
- ppChangeBuilder
[in, out, unique] 傳回用來將變更單位資訊加入至變更的物件。
傳回值
S_OK。
E_POINTER。
如果 ISyncChangeBatch2 物件已傳送給變更套用者或傳送給同步處理工作階段,或者此物件是使用 IProviderSyncServices::DeserializeChangeBatch 或 IProviderSyncServices::DeserializeFullEnumerationChangeBatch 建立的,則為 SYNC_E_CHANGE_BATCH_IS_READ_ONLY。
如果沒有群組為開啟,或者先前已將空群組加入到此批次,則為 SYNC_E_INVALID_OPERATION。
如果已排序群組為開啟,而且 pbItemId 小於先前加入群組之項目的項目識別碼,或小於開啟群組時指定的項目識別碼,則為 SYNC_E_RANGE_OUT_OF_ORDER。
備註
當條件約束衝突是透過合併兩個發生衝突的項目所解決時,就會建立合併標記。當條件約束衝突是透過合併來解決時,系統會選擇較小的項目識別碼做為成功項目識別碼,而較大的則是失敗項目識別碼。成功項目識別碼會用來識別合併項目。合併標記會追蹤失敗項目識別碼與成功項目識別碼在同步處理社群中識別相同的項目。合併標記的中繼資料與已刪除項目標記的中繼資料相同,而且加入了成功項目識別碼。