Condividi tramite


Sviluppo di un gestore di Windows Sync Center

Questo argomento fornisce un esame dettagliato dei requisiti per compilare un file DLL che implementa un gestore da usare con Il Centro sincronizzazione. Queste informazioni sono valide a partire da Windows Vista.

Esperienza di sincronizzazione di Windows prima di Vista

Windows XP ha fornito un Synchronization Manager (mobsync.exe). Molti dispositivi come i lettori mp3, i telefoni cellulari e le fotocamere hanno fornito anche interfacce di sincronizzazione personalizzate anziché usare Synchronization Manager. Ciò ha comportato un'esperienza utente incoerente e non decentralizzata.

La nuova funzionalità centro di sincronizzazione fornita in Windows Vista offre diversi vantaggi rispetto alla versione precedente di Synchronization Manager.

  • Migliore individuabilità
  • Minore necessità di un'azione diretta dell'utente
  • Non blocca altre operazioni
  • Migliore visualizzazione dello stato di avanzamento della sincronizzazione
  • Più facile comprendere il modello di sviluppo

API del Centro sincronizzazione

Il Centro sincronizzazione comunica con i gestori tramite diverse interfacce COM (Component Object Model). Non tutte queste interfacce sono necessarie per implementare un gestore del Centro sincronizzazione. Questo argomento è stato suddiviso in due sezioni. La prima sezione illustra le interfacce COM essenziali che ogni gestore deve supportare e la seconda sezione esamina le interfacce COM facoltative e esamina i motivi per cui un gestore li supporta.

Interfacce essenziali

Tutti i gestori del Centro sincronizzazione devono supportare le interfacce seguenti:

ISyncMgrSyncItem e ISyncMgrSyncItemInfo vengono usati per descrivere un singolo elemento di sincronizzazione coinvolto nella sincronizzazione con il Centro sincronizzazione. Un elemento di sincronizzazione rappresenta in genere un tipo di dati specifico (ad esempio immagini) o una posizione specifica dei dati.

Gli elementi di sincronizzazione che rappresentano percorsi di dati diversi consentono sincronizzazioni molto specifiche. La definizione della granularità della posizione spetta all'autore del gestore, ma è importante prestare attenzione nella progettazione. Se sono presenti troppi elementi di sincronizzazione (posizioni), l'utente è limitato nella possibilità di sincronizzare solo determinati dati. All'altro estremo, una granularità eccessiva può diventare ingestibile.

Se un gestore supporta più tipi di dati o più percorsi di dati, deve supportare più di un oggetto elemento di sincronizzazione. Un esempio può essere un assistente ai dati personali (PDA) che consente all'utente di sincronizzare contatti, elementi del calendario e documenti. Questi tre tipi di dati devono essere rappresentati da tre oggetti unici, ognuno dei quali espone le interfacce ISyncMgrSyncItem e ISyncMgrSyncItemInfo .

L'interfaccia IEnumSyncMgrSyncItems fornisce un meccanismo per enumerare gli elementi di sincronizzazione di un handler. Per recuperare questo enumeratore, Sync Center chiama il metodo ISyncMgrSyncItemContainer::GetSyncItemEnumerator esposto dal gestore. ISyncMgrSyncItemContainer contiene anche due altri metodi che il Centro sincronizzazione può usare per recuperare informazioni sugli elementi di sincronizzazione del gestore:

  • GetSyncItem restituisce un elemento di sincronizzazione specifico.
  • GetSyncItemCount restituisce il numero di elementi di sincronizzazione supportati dal gestore.

ISyncMgrHandler e ISyncMgrHandlerInfo vengono utilizzati per descrivere le proprietà del handler e avviare la sincronizzazione effettiva. ISyncMgrHandler::Synchronize è la posizione in cui il codice del gestore esegue la sincronizzazione e fornisce feedback sullo stato di avanzamento e su eventuali problemi che si verificano.

Molti dei metodi di interfaccia non devono essere completamente implementati. Il Centro sincronizzazione fornisce una determinata quantità di informazioni predefinite. Le interfacce consentono a un gestore di eseguire l'override di queste informazioni e fornire informazioni personalizzate da visualizzare, se necessario.