从程序使用同步管理器

若要使应用程序能够使用同步管理器,必须实现组件对象模型 (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