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


Разработка обработчика Центра синхронизации Windows

В этом разделе приводятся пошаговые инструкции по созданию DLL-файла, реализующего обработчик для использования с центром синхронизации. Эти сведения являются допустимыми в Windows Vista.

Взаимодействие с синхронизацией Windows до Vista

Windows XP предоставляет диспетчер синхронизации (mobsync.exe). Многие устройства, такие как mp3-проигрыватели, мобильные телефоны и камеры, также предоставляли собственные интерфейсы синхронизации вместо использования диспетчера синхронизации. Это привело к несогласованности и нецентрализованности пользовательского интерфейса.

Новая функция Центра синхронизации, предоставляемая в Windows Vista, имеет ряд преимуществ по сравнению с более старой версией диспетчера синхронизации.

  • Улучшенная возможность обнаружения
  • Меньше необходимости в прямом действии пользователя
  • Не блокирует другие операции
  • Улучшенная визуализация хода выполнения синхронизации
  • Упрощенная для понимания модель разработки

API Центра синхронизации

Центр синхронизации взаимодействует с обработчиками через ряд интерфейсов COM. Не все эти интерфейсы необходимы для реализации обработчика центра синхронизации. Этот раздел был разбит на два раздела. В первом разделе описываются основные COM-интерфейсы, которые должен поддерживать каждый обработчик, а во втором разделе рассматриваются необязательные COM-интерфейсы и рассматриваются причины их поддержки обработчиком.

Основные интерфейсы

Все обработчики Центра синхронизации должны поддерживать следующие интерфейсы:

ISyncMgrSyncItem и ISyncMgrSyncItemInfo используются для описания одного элемента синхронизации, участвуемого в синхронизации с Центром синхронизации. Элемент синхронизации обычно представляет определенный тип данных (например, изображения) или определенное расположение данных.

Элементы синхронизации, представляющие различные расположения данных, позволяют выполнять очень определенные синхронизации. Детализация расположения определяется автором обработчика, но при проектировании следует соблюдать осторожность. Если элементов (расположений) синхронизации слишком мало, пользователь может синхронизировать только определенные данные. С другой стороны, слишком большая степень детализации может стать неуправляемой.

Если обработчик поддерживает несколько типов данных или несколько расположений данных, ему необходимо поддерживать несколько объектов элемента синхронизации. Примером может быть помощник по персональным данным (PDA), который позволяет пользователю синхронизировать контакты, элементы календаря и документы. Эти три типа данных должны быть представлены тремя уникальными объектами, каждый из которых предоставляет интерфейсы ISyncMgrSyncItem и ISyncMgrSyncItemInfo .

Интерфейс IEnumSyncMgrSyncItems предоставляет механизм для перечисления элементов синхронизации обработчика. Чтобы получить этот перечислитель, Центр синхронизации вызывает метод ISyncMgrSyncItemContainer::GetSyncItemEnumerator , предоставляемый обработчиком. ISyncMgrSyncItemContainer также содержит два других метода, которые центр синхронизации может использовать для получения сведений о элементах синхронизации обработчика:

  • GetSyncItem возвращает определенный элемент синхронизации.
  • GetSyncItemCount возвращает количество элементов синхронизации, поддерживаемых обработчиком.

ISyncMgrHandler и ISyncMgrHandlerInfo используются для описания свойств обработчика и запуска фактической синхронизации. ISyncMgrHandler::Synchronize — это место, где код обработчика выполняет синхронизацию и предоставляет отзывы о ходе выполнения и любых возникающих проблемах.

Многие методы интерфейса не обязательно должны быть полностью реализованы. Центр синхронизации предоставляет определенный объем сведений по умолчанию. Интерфейсы позволяют обработчику переопределять эти сведения и при необходимости предоставлять пользовательские сведения для отображения.