Delen via


Een Handler voor Windows Sync Center ontwikkelen

In dit onderwerp vindt u een stapsgewijs overzicht van de vereisten voor het bouwen van een DLL-bestand waarmee een handler wordt geïmplementeerd die moet worden gebruikt met Sync Center. Deze informatie is geldig vanaf Windows Vista.

De Windows-synchronisatie-ervaring voor Vista

Windows XP heeft een Synchronization Manager (mobsync.exe) geleverd. Veel apparaten zoals mp3-spelers, mobiele telefoons en camera's bieden ook hun eigen synchronisatie-interfaces in plaats van synchronisatiebeheer te gebruiken. Dit heeft geresulteerd in een inconsistente en niet-gecentraliseerde gebruikerservaring.

De nieuwe synchronisatiecentrumfunctie in Windows Vista heeft verschillende voordelen ten opzichte van het oudere synchronisatiebeheer.

  • Betere vindbaarheid
  • Minder behoefte aan directe gebruikersactie
  • Blokkeert geen andere bewerkingen
  • Betere visualisatie van de synchronisatievoortgang
  • Eenvoudiger te begrijpen ontwikkelingsmodel

Synchronisatiecentrum-API's

Sync Center communiceert met handlers via een aantal COM-interfaces (Component Object Model). Niet al deze interfaces zijn nodig om een Sync Center-handler te implementeren. Dit onderwerp is onderverdeeld in twee secties. In de eerste sectie worden de essentiële COM-interfaces uitgelegd die elke handler moet ondersteunen, en in de tweede sectie worden de optionele COM-interfaces onderzocht en wordt gekeken naar de redenen waarom een handler deze zou ondersteunen.

Essentiële interfaces

Alle handlers van het Sync Center moeten de volgende interfaces ondersteunen:

ISyncMgrSyncItem en ISyncMgrSyncItemInfo worden gebruikt om één synchronisatie-item te beschrijven dat betrokken is bij de synchronisatie met het Synchronisatiecentrum. Een synchronisatie-item vertegenwoordigt over het algemeen een bepaald gegevenstype (zoals afbeeldingen) of een bepaalde locatie van gegevens.

Synchronisatie-items die verschillende gegevenslocaties vertegenwoordigen, maken zeer specifieke synchronisaties mogelijk. De granulariteit van de locatie is aan de handlerauteur, maar er moet zorgvuldigheid in het ontwerp worden betracht. Als er te weinig synchronisatie-items (locaties) zijn, wordt de gebruiker beperkt in de mogelijkheid om alleen bepaalde gegevens te synchroniseren. Bij het andere extreme kan te veel granulariteit onbeheerbaar worden.

Als een handler meer dan één gegevenstype of meerdere gegevenslocaties ondersteunt, moet deze meer dan één synchronisatie-itemobject ondersteunen. Een voorbeeld hiervan is een PDA (Personal Data Assistant) waarmee de gebruiker contactpersonen, agenda-items en documenten kan synchroniseren. Deze drie gegevenstypen moeten worden vertegenwoordigd door drie unieke objecten die elk de ISyncMgrSyncItem- en ISyncMgrSyncItemInfo interfaces beschikbaar maken.

De IEnumSyncMgrSyncItems interface biedt een mechanisme voor het inventariseren van synchronisatie-items van een handler. Als u deze enumerator wilt ophalen, roept Sync Center de ISyncMgrSyncItemContainer::GetSyncItemEnumerator aan methode die beschikbaar wordt gesteld door de handler. ISyncMgrSyncItemContainer bevat ook twee andere methoden die het Sync Center kan gebruiken om informatie over de synchronisatie-items van de handler op te halen:

  • GetSyncItem- een specifiek synchronisatie-item retourneert.
  • GetSyncItemCount- retourneert het aantal synchronisatie-items dat wordt ondersteund door de handler.

ISyncMgrHandler en ISyncMgrHandlerInfo worden gebruikt om de eigenschappen van de hander te beschrijven en de werkelijke synchronisatie te starten. ISyncMgrHandler::Sync is waar de handlercode de synchronisatie uitvoert en feedback geeft over de voortgang en eventuele problemen die zich voordoen.

Veel van de interfacemethoden hoeven niet volledig te worden geïmplementeerd. Sync Center biedt een bepaalde hoeveelheid standaardgegevens. Met de interfaces kan een handler deze informatie overschrijven en, indien nodig, aangepaste informatie opgeven.