Разработка обработчика Центра синхронизации Windows
В этом разделе представлена пошаговая проверка требований к созданию DLL-файла, реализующего обработчик для использования с Центром синхронизации. Эта информация действительна начиная с Windows Vista.
- Опыт синхронизации Windows до Vista
- API Центра Синхронизации
Интерфейс синхронизации Windows до Vista
Windows XP предоставил диспетчер синхронизации (mobsync.exe). Многие устройства, такие как mp3-проигрыватели, мобильные телефоны и камеры, также предоставляют собственные интерфейсы синхронизации, а не с помощью диспетчера синхронизации. Это привело к несогласованности и нецентрализованной пользовательской среде.
Новая функция Центра синхронизации, предоставляемая в Windows Vista, имеет несколько преимуществ по сравнению со старым диспетчером синхронизации.
- Улучшенная возможность обнаружения
- Меньше необходимости в прямом действии пользователя
- Не блокирует другие операции
- Улучшенная визуализация хода выполнения синхронизации
- Упрощение понимания модели разработки
API Центра синхронизации
Центр синхронизации взаимодействует с обработчиками через ряд интерфейсов объектной модели компонента (COM). Не все эти интерфейсы необходимы для реализации обработчика Центра синхронизации. Этот раздел разбит на два раздела. Первый раздел объясняет основные интерфейсы COM, которые должны поддерживать каждый обработчик, и второй раздел изучает необязательные интерфейсы COM и проверяет причины, по которым обработчик будет поддерживать их.
Основные интерфейсы
Все обработчики Центра синхронизации должны поддерживать следующие интерфейсы:
- ISyncMgrHandler
- ISyncMgrHandlerInfo
- ISyncMgrSyncItemContainer
- IEnumSyncMgrSyncItems
- ISyncMgrSyncItem
- ISyncMgrSyncItemInfo
ISyncMgrSyncItem и ISyncMgrSyncItemInfo используются для описания одного элемента синхронизации, связанного с синхронизацией в Центре синхронизации. Элемент синхронизации обычно представляет определенный тип данных (например, изображения) или определенное расположение данных.
Элементы синхронизации, представляющие различные расположения данных, позволяют выполнять очень конкретные синхронизации. Степень детализации расположения зависит от автора обработчика, но следует уделить внимание проектированию. Если слишком мало элементов синхронизации (расположений), пользователь может синхронизировать только определенные данные. В другой крайности слишком много детализации может стать неуправляемым.
Если обработчик поддерживает несколько типов данных или нескольких расположений данных, то он должен поддерживать несколько объектов элемента синхронизации. Примером может быть помощник по персональным данным (PDA), позволяющий пользователю синхронизировать контакты, элементы календаря и документы. Эти три типа данных должны быть представлены тремя уникальными объектами, каждый из которых предоставляет интерфейсы ISyncMgrSyncItem и ISyncMgrSyncItemInfo.
Интерфейс IEnumSyncMgrSyncItems предоставляет механизм перечисления элементов синхронизации обработчика. Чтобы получить этот перечислитель, Центр синхронизации вызывает метод ISyncMgrSyncItemContainerer::GetSyncItemEnumerator, предоставляемый обработчиком. ISyncMgrSyncItemContainer также содержит два других метода, которые Центр синхронизации может использовать для получения сведений о элементах синхронизации обработчика:
- GetSyncItem возвращает определенный элемент синхронизации.
- GetSyncItemCount возвращает количество элементов синхронизации, поддерживаемых обработчиком.
ISyncMgrHandler и ISyncMgrHandlerInfo используются для описания свойств обработчика и запуска фактической синхронизации. ISyncMgrHandler::Синхронизировать - это то место, где код обработчика выполняет синхронизацию и дает обратную связь о ходе выполнения и возникающих проблемах.
Многие методы интерфейса не должны быть полностью реализованы. Центр синхронизации предоставляет определенное количество сведений по умолчанию. Интерфейсы позволяют обработчику переопределять эти сведения и предоставлять пользовательские сведения для отображения при необходимости.