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。

  • 如果指定 ID 的格式与初始化此对象时指定的 ID 格式架构不匹配,则返回值为 SYNC_E_ID_FORMAT_MISMATCH。

  • 如果尚未为变更批启动变更应用,或已将 pSourceChange 报告为已成功应用,则返回值为 SYNC_E_INVALID_OPERATION。

  • 如果 pSourceChange 和 pDestinationVersion 中只有一个包含变更单位,则返回值为 SYNC_E_ITEM_HAS_CHANGE_UNITS。

  • 如果 pSourceChange 和 pDestinationVersion 引用了不同的项 ID,则返回值为 SYNC_E_NOT_EXPECTED_CHANGE。

备注

目标提供程序通常对从源提供程序发送的每个变更调用一次此方法。返回的 IChangeApplicationContext 对象可用于执行冲突检测和冲突解决,并可用于确定目标提供程序应如何应用 pSourceChange 指定的变更。

请参阅

参考

IChangeApplicationServices 接口