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


IAsynchronousNotifyingChangeApplier::ApplyChanges

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

Примечание

Этот метод устарел.

Синтаксис

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

Параметры

Параметр

Описание

resolutionPolicy

[in] Политика, применяемая для разрешения конфликтов.

pSourceChanges

[in] Пакет изменений от поставщика источника.

pUnkDataRetriever

[in] Объект, который можно использовать для получения данных элемента из реплики источника.

pDestinationVersions

[in] Список изменений, содержащий версии элементов, которые сохраняются в реплике назначения. Эти элементы соответствуют элементам в списке pSourceChanges.

pDestinationKnowledge

[in] Набор знаний реплики назначения.

pDestinationForgottenKnowledge

[in] Утраченный набор знаний реплики назначения.

pChangeApplierTarget

[in] Объект, который будет вызываться для сохранения изменений и конфликтов.

pSessionState

[in, unique] Сведения о состоянии текущего сеанса.

pCallback

[in, unique] Обратные вызовы, которые будут получать уведомления о событиях применения изменений.

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

  • 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, то Sync Framework вызывает IASynchronousNotifyingChangeApplierTarget::GetDestinationVersion в pChangeApplierTarget для каждого элемента в pSourceChanges.

См. также

Другие ресурсы

Интерфейс IAsynchronousNotifyingChangeApplier

Перечисление CONFLICT_RESOLUTION_POLICY