Compartir a través de


ISynchronousNotifyingChangeApplier::ApplyChanges

Realiza la detección de conflictos, el control de conflictos y la aplicación de cambios correspondiente a un lote de cambios.

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

Parámetros

Parámetro

Descripción

resolutionPolicy

[in] Directiva que se usa para resolver conflictos.

pSourceChanges

[in] Lote de cambios del proveedor de origen.

pUnkDataRetriever

[in] Objeto que se puede usar para recuperar datos de elemento de la réplica de origen.

pDestinationVersions

[in] Lista de cambios que contiene las versiones de los elementos que se encuentran almacenados en la réplica de destino. Estos elementos corresponden a los elementos de pSourceChanges.

pDestinationKnowledge

[in] Conocimiento de la réplica de destino.

pDestinationForgottenKnowledge

[in] Conocimiento olvidado de la réplica de destino.

pChangeApplierTarget

[in] Objeto al que se llamará para guardar los cambios y los conflictos.

pSessionState

[in, unique] Información de estado sobre la sesión actual.

pCallback

[in, unique] Devoluciones de llamada que recibirán notificaciones sobre eventos de aplicación de cambios.

Valor devuelto

  • 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

Notas

Normalmente, un proveedor llama a este método desde su método IKnowledgeSyncProvider::ProcessChangeBatch. Este método detecta los conflictos que se producen entre los cambios que se envían en pSourceChanges y los elementos correspondientes de la réplica de destino. Resuelve los conflictos de acuerdo con la directiva especificada por resolutionPolicy. Si es necesario, este método llama después a los métodos de pChangeApplierTarget para guardar los cambios en la réplica de destino y los conflictos no resueltos.

Si el valor de pDestinationVersions es NULL, este método llama a ISynchronousNotifyingChangeApplierTarget::GetDestinationVersion en pChangeApplierTarget para cada elemento de pSourceChanges.

Vea también

Referencia

Interfaz ISynchronousNotifyingChangeApplier
Enumeración CONFLICT_RESOLUTION_POLICY