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