Использование диспетчера синхронизации из программы

Чтобы приложение работало с диспетчером синхронизации, необходимо реализовать объект COM для обработки уведомлений о синхронизации, получаемых от SyncMgr. Обработчик приложения выполняет синхронизацию элементов, которые вы обрабатываете. В обработчике необходимо реализовать интерфейс ISyncMgrSynchronize . Кроме того, необходимо указать объект перечислителя и ISyncMgrEnumItems для всех отдельных элементов, которые может синхронизировать приложение.

SyncMgr реализует ISyncMgrSynchronizeCallback и ISyncMgrSynchronizeInvoke.

SyncMgr вызывает методы в ISyncMgrSynchronize , чтобы получить сведения об элементах, обрабатываемых приложением, и сведения о обработчике, предоставленном для синхронизации этих элементов.

Во время выполнения процесс синхронизации выполняет следующие действия.

  1. SyncMgr уведомляет приложение о том, что наступает время синхронизации для одного из элементов, обрабатываемых приложением, путем вызова метода ISyncMgrSynchronize::Initialize .
  2. SyncMgr вызывает ISyncMgrSynchronize::EnumSyncMgrItems , чтобы получить интерфейс ISyncMgrEnumItems для элементов, обрабатываемых приложением.
  3. SyncMgr вызывает ISyncMgrSynchronize::SetProgressCallback , чтобы предоставить обработчику указатель интерфейса для интерфейса ISyncMgrSynchronizeCallback . Обработчик использует этот интерфейс для обратного вызова SyncMgr во время синхронизации.
  4. Затем SyncMgr вызывает метод ISyncMgrSynchronize::P repareForSync, чтобы предоставить обработчику возможность отобразить любой элемент пользовательского интерфейса, необходимый перед началом синхронизации. Например, в почтовом приложении может отображаться диалоговое окно входа пользователя.
  5. Обработчик вызывает ISyncMgrSynchronizeCallback::EnableModeless до и после отображения любых элементов пользовательского интерфейса. По завершении обработчик вызывает ISyncMgrSynchronizeCallback::P repareForSyncCompleted .
  6. SyncMgr вызывает метод ISyncMgrSynchronize::Synchronize для запуска синхронизации.

В процессе синхронизации SyncMgr продолжает вызывать методы в интерфейсе ISyncMgrSynchronize . Он может отправлять ошибки обработчика, ход выполнения и уведомления. Он также может перечислять элементы, обрабатываемые приложением, или разрешать приложению отображать свойства элементов.

Обработчик вызывает методы в ISyncMgrSynchronizeCallback , чтобы определить, следует ли пропустить элемент, регистрировать ошибки и публиковать сведения о ходе выполнения во время синхронизации.

Дополнительные сведения см. на связанных справочных страницах для задействованных интерфейсов.

После завершения синхронизации обработчик вызывает ISyncMgrSynchronizeCallback::SynchronizeCompleted.