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 指定的变更。