Compartilhar via


IAsynchronousNotifyingChangeApplier::ApplyChanges

Executa a detecção e a manipulação de conflitos, bem como a aplicação de alterações para um lote de alterações.

Dica

Esse método agora está obsoleto.

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

Parâmetros

Parâmetro

Descrição

resolutionPolicy

[in] A política a ser usada para resolver conflitos.

pSourceChanges

[in] O lote de alterações do provedor de origem.

pUnkDataRetriever

[in] Um objeto que pode ser usado para recuperar dados de item a partir da réplica de origem.

pDestinationVersions

[in] Uma lista de alterações que contém as versões dos itens que são armazenados na réplica de destino. Esses itens correspondem aos itens em pSourceChanges.

pDestinationKnowledge

[in] O conhecimento da réplica de destino.

pDestinationForgottenKnowledge

[in] O conhecimento esquecido da réplica de destino.

pChangeApplierTarget

[in] O objeto que será chamado para salvar alterações e conflitos.

pSessionState

[in, unique] Informações de estado sobre a sessão atual.

pCallback

[in, unique] Retornos de chamada que receberão notificações sobre eventos de aplicação de alterações.

Valor de retorno

  • 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

Comentários

Normalmente esse método é chamado por um provedor a partir de seu método de IKnowledgeSyncProvider::ProcessChangeBatch.

Este método detecta conflitos que ocorrem entre as alterações enviadas em pSourceChanges e os itens correspondentes na réplica de destino. Ele resolve qualquer conflito de acordo com a política especificada por resolutionPolicy. Se necessário, este método chama métodos em pChangeApplierTarget para salvar alterações na réplica de destino e para salvar conflitos não resolvidos.

Se pDestinationVersions for NULL, Sync Framework chamará IASynchronousNotifyingChangeApplierTarget::GetDestinationVersion em pChangeApplierTarget para cada item em pSourceChanges.

Consulte também

Referência

Interface IAsynchronousNotifyingChangeApplier
Enumeração CONFLICT_RESOLUTION_POLICY