从程序使用同步管理器

若要使应用程序能够使用同步管理器,必须实现组件对象模型 (COM) 对象来处理从 SyncMgr 收到的同步通知。 应用程序的处理程序对所处理的项执行同步。 包含在处理程序中,必须实现 ISyncMgrSynchronize 接口。 此外,必须为应用程序可以同步的任何单独项提供枚举器对象和 ISyncMgrEnumItems

SyncMgr 实现 ISyncMgrSynchronizeCallbackISyncMgrSynchronizeInvoke

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