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


ISyncSessionState::OnProgress

Сообщает приложению о ходе синхронизации.

HRESULT OnProgress(
  SYNC_PROVIDER_ROLE provider,
  SYNC_PROGRESS_STAGE syncStage,
  DWORD dwCompletedWork,
  DWORD dwTotalWork);

Параметры

  • provider
    [in] Роль поставщика, отправляющего это событие.
  • syncStage
    [in] Текущая стадия сеанса синхронизации.
  • dwCompletedWork
    [in] Объем работы, выполненной в сеансе к настоящему моменту. Это значение интерпретируется как часть значения dwTotalWork.
  • dwTotalWork
    [in] Общий объем работы в сеансе.

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

  • S_OK

  • E_INVALIDARG, если provider или syncStage не являются допустимыми значениями.

Замечания

С помощью этого метода можно сообщать приложению о ходе выполнения пользовательского процесса. При вызове этого метода поставщиком создается событие ISyncCallback::OnProgress.

Если в качестве значения параметра syncStage указано SPS_CHANGE_APPLICATION, то Sync Framework накапливает итоговые данные о завершенной работе, задаваемые параметром dwCompletedWork при каждом вызове метода ISyncSessionState::OnProgress. Sync Framework также рассматривает параметр dwTotalWork как оставшийся объем работы в сеансе и вычисляет общий объем работы для сеанса, прибавляя dwTotalWork к накопленному значению завершенной работы. Затем Sync Framework передает эти вычисленные значения интерфейсу ISyncCallback::OnProgress. Если единственным допустимым значением является syncStage, то значения dwCompletedWork и dwTotalWork передаются интерфейсу ISyncCallback::OnProgress напрямую.

Если предполагаемое количество работы указывается поставщиком источника, могут возникать непредвиденные результаты при вызове поставщиком интерфейса ISyncSessionState::OnProgress с указанием SPS_CHANGE_APPLICATION в качестве значения параметра syncStage. Это связано с тем, что Sync Framework подводит итоги по выполненной работе каждый раз при отправке уведомлений о ходе выполнения во время применения изменений. Если поставщик отправляет собственное уведомление о ходе выполнения, указывая SPS_CHANGE_APPLICATION в качестве значения параметра syncStage, то Sync Framework прибавляет значения предполагаемого объема работы, указанные поставщиком, к общему объему выполненной работы в сеансе. Из-за этого одна и та же работа может быть посчитана дважды: один раз, когда о нем сообщает платформа Sync Framework, и один раз, когда о выполнении сообщает поставщик.

См. также

Справочник

Интерфейс ISyncSessionState

Основные понятия

Отчет о ходе синхронизации