開發 Windows Sync Center 處理程式
本主題會逐步檢查建置 DLL 檔案的需求,以實作要與同步中心搭配使用的處理程式。 此資訊在 Windows Vista 中有效。
Vista 之前的 Windows 同步處理體驗
Windows XP 提供了 Synchronization Manager (mobsync.exe)。 許多裝置,例如 mp3 播放器、行動電話和相機也提供了自己的同步處理介面,而不是使用同步管理員。 這會導致不一致且未集中的用戶體驗。
Windows Vista 中提供的新同步中心功能比舊版同步管理員有數個優點。
- 更佳的可探索性
- 直接用戶動作的需求較少
- 不會封鎖其他作業
- 更佳的同步進度視覺化
- 更容易了解開發模型
同步中心 API
同步中心會透過一些元件物件模型 (COM) 介面與處理程序通訊。 並非所有介面都需要實作同步中心處理程式。 本主題已分成兩節。 第一節說明每個處理程式必須支援的基本 COM 介面,而第二個區段會檢查選擇性 COM 介面,並查看處理程式支援它們的原因。
基本介面
所有同步中心處理程式都必須支援下列介面:
- ISyncMgrHandler
- ISyncMgrHandlerInfo
- ISyncMgrSyncItemContainer
- IEnumSyncMgrSyncItems
- ISyncMgrSyncItem
- ISyncMgrSyncItemInfo
ISyncMgrSyncItem 和 ISyncMgrSyncItemInfo 用來描述在同步中心中涉及的單一同步專案。 同步處理專案通常代表特定數據類型(例如影像)或特定數據位置。
代表不同數據位置的同步處理項目允許非常特定的同步處理。 位置的粒度由處理程式作者決定,但應該在設計中小心。 如果同步項目(位置)太少,則會限制使用者只能同步某些特定數據的能力。 在另一個極端,過於細微的程度可能會變得難以管理。
如果處理程式支援多個數據類型或多個資料位置,則需要支援多個同步處理項目物件。 例如,個人數據助理(PDA)可讓使用者同步處理連絡人、日曆項目和文件。 這三種數據類型必須以三個唯一物件來表示,每個對象都會公開 ISyncMgrSyncItem 和 ISyncMgrSyncItemInfo 介面。
IEnumSyncMgrSyncItems 介面提供一個機制,可列舉處理程式的同步專案。 若要擷取此列舉值,Sync Center 會呼叫由處理程式公開的 ISyncMgrSyncItemContainer::GetSyncItemEnumerator 方法。 ISyncMgrSyncItemContainer 也包含同步中心可用來擷取處理程式同步專案相關信息的其他兩種方法:
- GetSyncItem 會傳回特定的同步項目。
- GetSyncItemCount 會傳回處理程式支援的同步處理項目數目。
ISyncMgrHandler 和 ISyncMgrHandlerInfo 用於描述處理程式的屬性,並啟動實際的同步。 ISyncMgrHandler::Synchronize 是處理器代碼執行同步的地方,並提供進度和發生問題的反饋。
許多介面方法不需要完全實作。 同步中心提供一定數量的預設資訊。 介面可讓處理程式覆寫此資訊,並視需要提供自定義資訊來顯示。