ISynchronousNotifyingChangeApplier::ApplyFullEnumerationChanges
对作为完全枚举组成部分的变更批执行冲突检测、冲突处理以及变更应用。
HRESULT ApplyFullEnumerationChanges(
CONFLICT_RESOLUTION_POLICY resolutionPolicy,
ISyncFullEnumerationChangeBatch * 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_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
SYNC_E_KNOWLEDGE_DECREASED
备注
此方法检测 pSourceChanges 中发送的变更与目标副本中相应项之间发生的冲突。此方法根据 resolutionPolicy 指定的策略解决所有冲突。如有必要,此方法随后会对 pChangeApplierTarget 调用方法,以将变更保存到目标副本中并保存未解决的冲突。
请参阅
参考
ISynchronousNotifyingChangeApplier 接口
CONFLICT_RESOLUTION_POLICY 枚举