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

Чтобы приложение работало с диспетчером синхронизации, необходимо реализовать объект 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.