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.