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