Partager via


ISynchronousNotifyingChangeApplier::ApplyChanges

Effectue des opérations de détection de conflit, de gestion des conflits et d'application de modifications pour un lot de modifications.

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

Paramètres

  • resolutionPolicy
    [in] Stratégie à utiliser pour résoudre les conflits.
  • pSourceChanges
    [in] Lot de modifications du fournisseur de source.
  • pUnkDataRetriever
    [in] Objet qui peut être utilisé pour récupérer des données d'élément du réplica source.
  • pDestinationVersions
    [in] Liste de modifications qui contient les versions des éléments stockés dans le réplica de destination. Ces éléments correspondent aux éléments dans pSourceChanges.
  • pDestinationKnowledge
    [in] Connaissance du réplica de destination.
  • pDestinationForgottenKnowledge
    [in] Connaissance oubliée du réplica de destination.
  • pChangeApplierTarget
    [in] Objet qui sera appelé pour enregistrer les modifications et conflits.
  • pSessionState
    [in] Informations d'état relatives à la session active.
  • pCallback
    [in] Rappels qui recevront des notifications à propos des événements d'application de modifications.

Valeur de retour

  • 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

Notes

En général, cette méthode est appelée par un fournisseur à partir de sa méthode IKnowledgeSyncProvider::ProcessChangeBatch. Cette méthode détecte les conflits qui se produisent entre les modifications envoyées dans pSourceChanges et les éléments correspondants dans le réplica de destination. Elle résout les conflits en fonction de la stratégie spécifiée par resolutionPolicy. Si nécessaire, cette méthode appelle ensuite des méthodes sur pChangeApplierTarget pour enregistrer les modifications dans le réplica de destination et enregistrer les conflits non résolus.

Si pDestinationVersions a la valeur NULL, cette méthode appelle ISynchronousNotifyingChangeApplierTarget::GetDestinationVersion sur pChangeApplierTarget pour chaque élément dans pSourceChanges.

Voir aussi

Référence

Interface ISynchronousNotifyingChangeApplier
Énumération CONFLICT_RESOLUTION_POLICY