Использование диспетчера синхронизации из программы
Чтобы приложение работало с диспетчером синхронизации, необходимо реализовать объект COM для обработки уведомлений о синхронизации, получаемых от SyncMgr. Обработчик приложения выполняет синхронизацию элементов, которые вы обрабатываете. В обработчике необходимо реализовать интерфейс ISyncMgrSynchronize . Кроме того, необходимо указать объект перечислителя и ISyncMgrEnumItems для всех отдельных элементов, которые может синхронизировать приложение.
SyncMgr реализует ISyncMgrSynchronizeCallback и ISyncMgrSynchronizeInvoke.
SyncMgr вызывает методы в ISyncMgrSynchronize , чтобы получить сведения об элементах, обрабатываемых приложением, и сведения о обработчике, предоставленном для синхронизации этих элементов.
Во время выполнения процесс синхронизации выполняет следующие действия.
- SyncMgr уведомляет приложение о том, что наступает время синхронизации для одного из элементов, обрабатываемых приложением, путем вызова метода ISyncMgrSynchronize::Initialize .
- SyncMgr вызывает ISyncMgrSynchronize::EnumSyncMgrItems , чтобы получить интерфейс ISyncMgrEnumItems для элементов, обрабатываемых приложением.
- SyncMgr вызывает ISyncMgrSynchronize::SetProgressCallback , чтобы предоставить обработчику указатель интерфейса для интерфейса ISyncMgrSynchronizeCallback . Обработчик использует этот интерфейс для обратного вызова SyncMgr во время синхронизации.
- Затем SyncMgr вызывает метод ISyncMgrSynchronize::P repareForSync, чтобы предоставить обработчику возможность отобразить любой элемент пользовательского интерфейса, необходимый перед началом синхронизации. Например, в почтовом приложении может отображаться диалоговое окно входа пользователя.
- Обработчик вызывает ISyncMgrSynchronizeCallback::EnableModeless до и после отображения любых элементов пользовательского интерфейса. По завершении обработчик вызывает ISyncMgrSynchronizeCallback::P repareForSyncCompleted .
- SyncMgr вызывает метод ISyncMgrSynchronize::Synchronize для запуска синхронизации.
В процессе синхронизации SyncMgr продолжает вызывать методы в интерфейсе ISyncMgrSynchronize . Он может отправлять ошибки обработчика, ход выполнения и уведомления. Он также может перечислять элементы, обрабатываемые приложением, или разрешать приложению отображать свойства элементов.
Обработчик вызывает методы в ISyncMgrSynchronizeCallback , чтобы определить, следует ли пропустить элемент, регистрировать ошибки и публиковать сведения о ходе выполнения во время синхронизации.
Дополнительные сведения см. на связанных справочных страницах для задействованных интерфейсов.
После завершения синхронизации обработчик вызывает ISyncMgrSynchronizeCallback::SynchronizeCompleted.