Freigeben über


IAsynchronousNotifyingChangeApplier::ApplyChanges

Führt Konflikterkennung, Konfliktbehandlung und Änderungsanwendung für einen Batch von Änderungen aus.

HRESULT ApplyChanges( 
  CONFLICT_RESOLUTION_POLICY resolutionPolicy,
  ISyncChangeBatch *pSourceChanges,
  IUnknown * pUnkDataRetriever,
  IEnumSyncChanges * pDestinationVersions,
  ISyncKnowledge *pDestinationKnowledge,
  IForgottenKnowledge *pDestinationForgottenKnowledge,
  IAsynchronousNotifyingChangeApplierTarget * pChangeApplierTarget,
  ISyncSessionState * pSessionState,
  ISyncCallback *pCallback);

Parameter

  • resolutionPolicy
    [in] Die Richtlinie, die zum Auflösen von Konflikten verwendet werden soll.
  • pSourceChanges
    [in] Der Änderungsbatch vom Quellenanbieter.
  • pUnkDataRetriever
    [in] Ein Objekt, das zum Abrufen von Elementdaten aus dem Quellreplikat verwendet werden kann.
  • pDestinationVersions
    [in] Eine Liste von Änderungen, die die Versionen der im Zielreplikat gespeicherten Elemente enthält. Diese Elemente entsprechen den Elementen in pSourceChanges.
  • pDestinationKnowledge
    [in] Das Wissen des Zielreplikats.
  • pDestinationForgottenKnowledge
    [in] Das vergessene Wissen des Zielreplikats.
  • pChangeApplierTarget
    [in] Das Objekt, das zum Speichern von Änderungen und Konflikten aufgerufen wird.
  • pSessionState
    [in] Zustandsinformationen über die aktuelle Sitzung.
  • pCallback
    [in] Rückrufe, die Benachrichtigungen über Änderungsanwendungsereignisse empfangen.

Rückgabewert

  • 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

Hinweise

Normalerweise wird diese Methode von einem Anbieter über seine IKnowledgeSyncProvider::ProcessChangeBatch-Methode aufgerufen.

Diese Methode erkennt Konflikte, die zwischen den in pSourceChanges gesendeten Änderungen und den entsprechenden Elementen im Zielreplikat auftreten. Sie löst alle Konflikte gemäß der von resolutionPolicy angegebenen Richtlinie auf. Falls erforderlich, ruft diese Methode anschließend Methoden für pChangeApplierTarget auf, um Änderungen im Zielreplikat sowie nicht aufgelöste Konflikte zu speichern.

Wenn pDestinationKnowledge gleich NULL ist, ruft Sync Framework für jedes Element in pSourceChanges IASynchronousNotifyingChangeApplierTarget::GetDestinationVersion für pChangeApplierTarget auf.

Siehe auch

Verweis

IAsynchronousNotifyingChangeApplier-Schnittstelle
CONFLICT_RESOLUTION_POLICY-Enumeration