다음을 통해 공유


ISynchronousNotifyingChangeApplier::ApplyChanges

일괄 변경 내용에 대해 충돌 검색, 충돌 처리 및 변경 내용 적용을 수행합니다.

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 열거형