Поделиться через


ISynchronousNotifyingChangeApplier::ApplyChanges

Выполняет обнаружение, и обработку конфликтов, и применение изменений для пакета изменений.

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

Параметры

  • resolutionPolicy
    [in] Политика, применяемая для разрешения конфликтов.
  • pSourceChanges
    [in] Пакет изменений от поставщика источника.
  • pUnkDataRetriever
    [in] Объект, который можно использовать для получения данных элемента из реплики источника.
  • pDestinationVersions
    [in] Список изменений, содержащий версии элементов, которые сохраняются в реплике назначения. Эти элементы соответствуют элементам в списке pSourceChanges.
  • pDestinationKnowledge
    [in] Набор знаний реплики назначения.
  • pDestinationForgottenKnowledge
    [in] Утраченный набор знаний реплики назначения.
  • pChangeApplierTarget
    [in] Объект, который будет вызываться для сохранения изменений и конфликтов.
  • pSessionState
    [in] Сведения о состоянии для текущего сеанса.
  • pCallback
    [in] Ответные вызовы, которые будут получать уведомления о событиях применения изменений.

Возвращаемое значение

  • 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

Замечания

Обычно этот метод вызывается поставщиком из метода IKnowledgeSyncProvider::ProcessChangeBatch. Этот метод обнаруживает конфликты, возникающие между изменениями, отправленными в pSourceChanges, и соответствующими элементами в реплике назначения. Он разрешает все конфликты в соответствии с политикой, определяемой параметром resolutionPolicy. В случае необходимости этот метод затем вызывает методы применительно к pChangeApplierTarget для сохранения изменений в реплике назначения и неразрешенных конфликтов.

Если pDestinationVersions имеет значение NULL, то этот метод вызывает ISynchronousNotifyingChangeApplierTarget::GetDestinationVersion в pChangeApplierTarget для каждого элемента в pSourceChanges.

См. также

Справочник

Интерфейс ISynchronousNotifyingChangeApplier
Перечисление CONFLICT_RESOLUTION_POLICY