次の方法で共有


Windows 同期センター ハンドラーの開発

このトピックでは、同期センターで使用するハンドラーを実装する DLL ファイルをビルドするための要件を詳細に確認します。 この情報は、Windows Vista の時点で有効です。

Vista の前の Windows 同期エクスペリエンス

Windows XP には 同期マネージャー (mobsync.exe) が用意されています。 mp3 プレーヤー、携帯電話、カメラなどの多くのデバイスも、同期マネージャーを使用するのではなく、独自の同期インターフェイスを提供しました。 その結果、一貫性がなく、非中央化されたユーザー エクスペリエンスが発生しました。

Windows Vista で提供される新しい同期センター機能には、以前の同期マネージャーよりもいくつかの利点があります。

  • 検出可能性の向上
  • ユーザーの直接操作の必要性が少ない
  • 他の操作をブロックしない
  • 同期の進行状況の視覚化の向上
  • 開発モデルを理解しやすくする

同期センター API

Sync Center は、多数のコンポーネント オブジェクト モデル (COM) インターフェイスを介してハンドラーと通信します。 これらのインターフェイスのすべてが同期センター ハンドラーを実装するために必要なわけではありません。 このトピックは、2 つのセクションに分かれています。 最初のセクションでは、すべてのハンドラーがサポートする必要がある重要な COM インターフェイスについて説明し、2 番目のセクションでは、オプションの COM インターフェイスを調べて、ハンドラーがそれらをサポートする理由を調べます。

基本インターフェイス

すべての同期センター ハンドラーは、次のインターフェイスをサポートする必要があります。

ISyncMgrSyncItemISyncMgrSyncItemInfo は、同期センターへの同期に関連する 1 つの同期項目を記述するために使用されます。 同期項目は通常、特定のデータ型 (画像など) またはデータの特定の場所を表します。

異なるデータの場所を表す同期項目を使用すると、非常に具体的な同期が可能になります。 場所の細分性はハンドラー作成者にかかっていますが、設計では注意が必要です。 同期項目 (場所) が少なすぎる場合、ユーザーは特定のデータのみを同期する機能が制限されます。 もう 1 つの極端な場合、細分性が高すぎると管理できなくなる可能性があります。

ハンドラーが複数のデータ型または複数のデータの場所をサポートしている場合は、複数の同期項目オブジェクトをサポートする必要があります。 たとえば、ユーザーが連絡先、予定表アイテム、ドキュメントを同期できるようにする個人データ アシスタント (PDA) が考えられます。 これら 3 つのデータ型は、それぞれ ISyncMgrSyncItem インターフェイスと ISyncMgrSyncItemInfo インターフェイスを公開する 3 つの一意のオブジェクトで表す必要があります。

IEnumSyncMgrSyncItems インターフェイスは、ハンドラーの同期項目を列挙するメカニズムを提供します。 この列挙子を取得するために、Sync Center はハンドラーによって公開される ISyncMgrSyncItemContainer::GetSyncItemEnumerator メソッドを呼び出します。 ISyncMgrSyncItemContainer には、ハンドラーの同期項目に関する情報を取得するために同期センターが使用できる他の 2 つのメソッドも含まれています。

ISyncMgrHandlerISyncMgrHandlerInfo は、ハンドャーのプロパティを記述し、実際の同期を起動するために使用されます。 ISyncMgrHandler::Synchronize は、ハンドラー コードが同期を実行し、進行状況と発生した問題に関するフィードバックを提供する場所です。

インターフェイス メソッドの多くは、完全に実装する必要はありません。 Sync Center には、特定の量の既定の情報が用意されています。 インターフェイスを使用すると、ハンドラーはこの情報をオーバーライドし、必要に応じて表示するカスタム情報を提供できます。