Condividi tramite


ISynchronousNotifyingChangeApplier::ApplyChanges

Esegue il rilevamento e la gestione dei conflitti e l'applicazione delle modifiche per un batch di modifiche

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

Parametri

Parametro

Descrizione

resolutionPolicy

[in] Criteri da utilizzare per la risoluzione di conflitti.

pSourceChanges

[in] Batch di modifiche del provider di origine.

pUnkDataRetriever

[in] Oggetto che può essere utilizzato per recuperare i dati dell'elemento dalla replica di origine.

pDestinationVersions

[in] Elenco di modifiche che contiene le versioni degli elementi archiviati nella replica di destinazione. Questi elementi corrispondono a quelli in pSourceChanges.

pDestinationKnowledge

[in] Conoscenza della replica di destinazione.

pDestinationForgottenKnowledge

[in] Conoscenza dimenticata della replica di destinazione.

pChangeApplierTarget

[in] Oggetto che verrà chiamato per salvare modifiche e conflitti.

pSessionState

[in, unique] Informazioni relative allo stato della sessione corrente.

pCallback

[in, unique] Callback che riceveranno notifiche sugli eventi di applicazione delle modifiche.

Valore restituito

  • 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

Osservazioni

Questo metodo viene in genere chiamato da un provider dal relativo metodo IKnowledgeSyncProvider::ProcessChangeBatch. Questo metodo rileva i conflitti che si verificano tra le modifiche inviate in pSourceChanges e gli elementi corrispondenti nella replica di destinazione. Risolve qualsiasi conflitto in base ai criteri specificati da resolutionPolicy. Se necessario, questo metodo chiama metodi su pChangeApplierTarget per salvare le modifiche nella replica di destinazione e salvare i conflitti non risolti.

Se pDestinationVersions è NULL, il metodo chiama ISynchronousNotifyingChangeApplierTarget::GetDestinationVersion su pChangeApplierTarget per ciascun elemento in pSourceChanges.

Vedere anche

Riferimento

Interfaccia ISynchronousNotifyingChangeApplier
Enumerazione CONFLICT_RESOLUTION_POLICY