开发 Windows 同步中心处理程序

本主题分步检查生成实现要与同步中心一起使用的处理程序的 DLL 文件的要求。 此信息自 Windows Vista 起有效。

Vista 之前的 Windows 同步体验

Windows XP 提供了 同步管理器 (mobsync.exe) 。 许多设备(如 mp3 播放器、手机和相机)也提供了自己的同步接口,而不是使用同步管理器。 这会导致用户体验不一致且不集中。

与较旧的同步管理器不同,Windows Vista 中提供的新同步中心功能具有多个优势。

  • 更好的可发现性
  • 减少对直接用户操作的需求
  • 不阻止其他操作
  • 更好地可视化同步进度
  • 更易于理解的开发模型

同步中心 API

同步中心通过多个组件对象模型 (COM) 接口与处理程序通信。 实现同步中心处理程序并非需要所有这些接口。 本主题已分为两个部分。 第一部分介绍每个处理程序必须支持的基本 COM 接口,第二部分检查可选的 COM 接口,并查看处理程序支持这些接口的原因。

基本接口

所有同步中心处理程序都必须支持以下接口:

ISyncMgrSyncItemISyncMgrSyncItemInfo 用于描述同步到同步中心所涉及的单个同步项。 同步项通常表示特定数据类型 (如图像) 或数据的特定位置。

表示不同数据位置的同步项允许进行非常具体的同步。 位置的粒度由处理程序作者决定,但在设计中应小心谨慎。 如果 (位置) 同步项太少,则用户只能同步某些数据。 另一种极端是,过多的粒度可能变得不可管理。

如果处理程序支持多个数据类型或多个数据位置,则它需要支持多个同步项对象。 例如,PDA) 助手 (个人数据,允许用户同步联系人、日历项目和文档。 这三种数据类型需要由三个唯一对象表示,每个对象都公开 ISyncMgrSyncItemISyncMgrSyncItemInfo 接口。

IEnumSyncMgrSyncItems 接口提供一种机制来枚举处理程序的同步项。 若要检索此枚举器,Sync Center 调用处理程序公开的 ISyncMgrSyncItemContainer::GetSyncItemEnumerator 方法。 ISyncMgrSyncItemContainer 还包含同步中心可用于检索有关处理程序同步项的信息的其他两种方法:

ISyncMgrHandlerISyncMgrHandlerInfo 用于描述手部的属性并启动实际同步。 ISyncMgrHandler::Synchronize 是处理程序代码执行同步并提供有关进度和所发生任何问题的反馈的位置。

许多接口方法不需要完全实现。 同步中心提供一定数量的默认信息。 接口允许处理程序替代此信息,并根据需要提供要显示的自定义信息。