プログラムからの同期マネージャーの使用

アプリケーションが同期マネージャーと連携できるようにするには、SyncMgr から受信した同期通知を処理するコンポーネント オブジェクト モデル (COM) オブジェクトを実装する必要があります。 アプリケーションのハンドラーは、処理する項目の同期を実行します。 ハンドラーに含まれている場合は、 ISyncMgrSynchronize インターフェイスを実装する必要があります。 また、アプリケーションで同期できる個別の項目には、列挙子オブジェクトと ISyncMgrEnumItems を指定する必要があります。

SyncMgr は 、ISyncMgrSynchronizeCallbackISyncMgrSynchronizeInvoke を実装します。

SyncMgr は ISyncMgrSynchronize 内のメソッドを呼び出して、アプリケーションが処理する項目に関する情報と、これらの項目を同期するために指定したハンドラーに関する情報を取得します。

実行時に、同期プロセスは次の手順に従います。

  1. SyncMgr は、 ISyncMgrSynchronize::Initialize メソッドを呼び出して、アプリケーションが処理する項目の 1 つに対して同期が行われる時刻であることをアプリケーションに通知します。
  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 を呼び出します。