Dela via


Utveckla en Windows Sync Center-hanterare

Det här avsnittet innehåller en stegvis undersökning av kraven för att skapa en DLL-fil som implementerar en hanterare som ska användas med Sync Center. Den här informationen är giltig från och med Windows Vista.

Windows-synkroniseringsupplevelsen före Vista

Windows XP tillhandahöll en Synchronization Manager (mobsync.exe). Många enheter som mp3-spelare, mobiltelefoner och kameror tillhandahöll också sina egna synkroniseringsgränssnitt i stället för att använda synkroniseringshanteraren. Detta resulterade i en inkonsekvent och icke-decentraliserad användarupplevelse.

Den nya Sync Center-funktionen som tillhandahålls i Windows Vista har flera fördelar jämfört med den äldre synkroniseringshanteraren.

  • Bättre upptäckbarhet
  • Mindre behov av direkt användaråtgärd
  • Blockerar inte andra åtgärder
  • Bättre visualisering av synkroniseringsstatusen
  • Enklare att förstå utvecklingsmodellen

API:er för Sync Center

Sync Center kommunicerar med hanterare via ett antal COM-gränssnitt (Component Object Model). Alla dessa gränssnitt behövs inte för att implementera en Sync Center-hanterare. Det här avsnittet har delats upp i två avsnitt. I det första avsnittet förklaras de viktiga COM-gränssnitt som varje hanterare måste ha stöd för, och det andra avsnittet undersöker de valfria COM-gränssnitten och tittar på orsakerna till att en hanterare stöder dem.

Viktiga gränssnitt

Alla Sync Center-hanterare måste ha stöd för följande gränssnitt:

ISyncMgrSyncItem och ISyncMgrSyncItemInfo används för att beskriva ett enda synkroniseringsobjekt som ingår i synkroniseringen till Synkroniseringscenter. Ett synkroniseringsobjekt representerar vanligtvis antingen en viss datatyp (till exempel bilder) eller en viss plats för data.

Synkroniseringsobjekt som representerar olika dataplatser möjliggör mycket specifika synkroniseringar. Granulariteten för platsen är upp till författaren, men man bör vara noggrann med designen. Om det finns för få synkroniseringsobjekt (platser) begränsas användarens möjlighet att endast synkronisera vissa data. I den andra extremiteten kan för mycket kornighet bli ohanterlig.

Om en hanterare stöder mer än en datatyp eller flera dataplatser måste den ha stöd för fler än ett synkroniseringsobjektobjekt. Ett exempel kan vara en personlig dataassistent (PDA) som gör att användaren kan synkronisera kontakter, kalenderobjekt och dokument. Dessa tre datatyper skulle behöva representeras av tre unika objekt som var och en exponerar ISyncMgrSyncItem och ISyncMgrSyncItemInfo gränssnitt.

Gränssnittet IEnumSyncMgrSyncItems ger en mekanism för att göra en uppräkning genom synkroniseringsobjekt hos en hanterare. För att hämta den här uppräknaren anropar Sync Center ISyncMgrSyncItemContainer::GetSyncItemEnumerator metoden som tillhandahålls av hanteraren. ISyncMgrSyncItemContainer innehåller även två andra metoder som Sync Center kan använda för att hämta information om hanterarens synkroniseringsobjekt:

  • GetSyncItem returnerar ett specifikt synkroniseringsobjekt.
  • GetSyncItemCount returnerar antalet synkroniseringsobjekt som stöds av hanteraren.

ISyncMgrHandler och ISyncMgrHandlerInfo används för att beskriva hanterarens egenskaper och starta den faktiska synkroniseringen. ISyncMgrHandler::Synkronisera är där hanterarkoden utför synkroniseringen och ger feedback om förloppet och eventuella problem som uppstår.

Många av gränssnittsmetoderna behöver inte implementeras fullt ut. Sync Center innehåller en viss mängd standardinformation. Med gränssnitten kan en hanterare åsidosätta den här informationen och ange anpassad information som ska visas om det behövs.