对变更批执行冲突检测、冲突处理和变更应用。
HRESULT ApplyChanges( 
  CONFLICT_RESOLUTION_POLICY resolutionPolicy,
  ISyncChangeBatch *pSourceChanges,
  IUnknown * pUnkDataRetriever,
  IEnumSyncChanges * pDestinationVersions,
  ISyncKnowledge *pDestinationKnowledge,
  IForgottenKnowledge *pDestinationForgottenKnowledge,
  ISynchronousNotifyingChangeApplierTarget * pChangeApplierTarget,
  ISyncSessionState * pSessionState,
  ISyncCallback *pCallback);
参数
| 参数 | 说明 | 
| resolutionPolicy | [in] 用于解决冲突的策略。 | 
| pSourceChanges | [in] 来自源提供程序的变更批。 | 
| pUnkDataRetriever | [in] 一个可用于从源副本中检索项数据的对象。 | 
| pDestinationVersions | [in] 包含存储在目标副本中的项的版本的变更列表。这些项与 pSourceChanges 中的项相对应。 | 
| pDestinationKnowledge | [in] 目标副本的知识。 | 
| pDestinationForgottenKnowledge | [in] 目标副本的遗忘知识。 | 
| pChangeApplierTarget | [in] 将被调用以用于保存变更和冲突的对象。 | 
| pSessionState | [in, unique] 有关当前会话的状态信息。 | 
| pCallback | [in, unique] 将接收有关变更应用事件的通知的回调。 | 
返回值
- S_OK 
- E_OUTOFMEMORY 
- E_POINTER 
- SYNC_E_OBJECT_NEEDS_STATE 
- SYNC_E_INTERNAL_ERROR 
- SYNC_E_CHANGE_COUNT_MISMATCH 
- SYNC_E_CHANGE_NEEDS_KNOWLEDGE 
- SYNC_E_ITEM_HAS_NO_CHANGE_UNITS 
- SYNC_E_CHANGE_NOT_IN_KNOWLEDGE 
- SYNC_E_CHANGE_UNIT_COUNT_MISMATCH 
- SYNC_E_NOT_EXPECTED_CHANGE 
- SYNC_E_ITEM_MUST_EXIST 
- SYNC_E_ID_FORMAT_MISMATCH 
- SYNC_E_BATCH_NEEDS_KNOWLEDGE 
备注
通常,此方法由提供程序从其 IKnowledgeSyncProvider::ProcessChangeBatch 方法调用。此方法检测在 pSourceChanges 中发送的变更与目标副本中的对应项之间发生的冲突。它根据 resolutionPolicy 指定的策略来解决所有冲突。如有必要,此方法随后会对 pChangeApplierTarget 调用方法,以将变更保存到目标副本中并保存未解决的冲突。
如果 pDestinationVersions 为 NULL,此方法将为 pSourceChanges 中的每一项调用 pChangeApplierTarget 上的 ISynchronousNotifyingChangeApplierTarget::GetDestinationVersion。
请参阅
参考
ISynchronousNotifyingChangeApplier 接口
CONFLICT_RESOLUTION_POLICY 枚举