ISyncChangeBatch2::AddMergeTombstoneMetadataToGroup

将指定的合并逻辑删除添加到当前打开的组中。

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。ID 格式必须与提供程序的 ID_PARAMETERS 结构指定的格式相匹配。
  • pbWinnerItemId
    [in] 发生合并后的项的 ID。这也称为入选 ID。ID 格式必须与提供程序的 ID_PARAMETERS 结构指定的格式相匹配。
  • pbItemId
    [in] 发生合并前的项的 ID。这也称为落选 ID。ID 格式必须与提供程序的 ID_PARAMETERS 结构指定的格式相匹配。
  • pChangeVersion
    [in] 此变更的版本。
  • pCreationVersion
    [in] 由 pbItemId 标识的项的创建版本。
  • dwWorkForChange
    [in] 变更的工作量估计值。此值用在应用变更的过程中,用于向应用程序报告已完成的工作。
  • ppChangeBuilder
    [in, out, unique] 返回一个可用于将变更单位信息添加到变更的对象。

返回值

  • S_OK。

  • E_POINTER。

  • 如果 ISyncChangeBatch2 对象已发送给变更应用方或同步会话,或者该对象是使用 IProviderSyncServices::DeserializeChangeBatchIProviderSyncServices::DeserializeFullEnumerationChangeBatch 创建的,则返回值为 SYNC_E_CHANGE_BATCH_IS_READ_ONLY。

  • 如果没有打开的组或者先前将某个空组添加到了批中,则返回值为 SYNC_E_INVALID_OPERATION。

  • 如果某个排序组已经打开,且 pbItemId 小于先前添加到该组的项的项 ID 或小于打开组时指定的项 ID,则返回值为 SYNC_E_RANGE_OUT_OF_ORDER。

备注

通过合并冲突中的两个项来解决约束冲突时,会创建一个合并逻辑删除。通过合并解决约束冲突时,较小的项 ID 将选作入选项 ID,而较大的项 ID 会选作落选项 ID。入选项 ID 用于标识合并项。合并逻辑删除跟踪同步社区中落选项 ID 与入选项 ID 标识相同项的情况。合并逻辑删除的元数据与删除的项逻辑删除的元数据相同,只是增加了入选项 ID。

请参阅

参考

ISyncChangeBatch2 接口

概念

检测和解决约束冲突