Développement d’un gestionnaire du Centre de synchronisation Windows
Cette rubrique fournit un examen pas à pas des conditions requises pour générer un fichier DLL qui implémente un gestionnaire à utiliser avec le Centre de synchronisation. Ces informations sont valides à partir de Windows Vista.
Expérience de synchronisation Windows avant Vista
Windows XP a fourni un Gestionnaire de synchronisation (mobsync.exe). De nombreux appareils tels que les lecteurs mp3, les téléphones portables et les caméras fournissaient également leurs propres interfaces de synchronisation au lieu d’utiliser le Gestionnaire de synchronisation. Cela a entraîné une expérience utilisateur incohérente et non centralisée.
La nouvelle fonctionnalité du Centre de synchronisation fournie dans Windows Vista présente plusieurs avantages par rapport à l’ancien Gestionnaire de synchronisation.
- Meilleure détectabilité
- Moins besoin d’action directe de l’utilisateur
- Ne bloque pas les autres opérations
- Meilleure visualisation de la progression de la synchronisation
- Modèle de développement plus facile à comprendre
API du Centre de synchronisation
Le Centre de synchronisation communique avec les gestionnaires par le biais d’un certain nombre d’interfaces COM (Component Object Model). Toutes ces interfaces ne sont pas nécessaires pour implémenter un gestionnaire du Centre de synchronisation. Cette rubrique a été divisée en deux sections. La première section explique les interfaces COM essentielles que chaque gestionnaire doit prendre en charge, et la deuxième section examine les interfaces COM facultatives et examine les raisons pour lesquelles un gestionnaire les prend en charge.
Interfaces essentielles
Tous les gestionnaires du Centre de synchronisation doivent prendre en charge les interfaces suivantes :
- ISyncMgrHandler
- ISyncMgrHandlerInfo
- ISyncMgrSyncItemContainer
- IEnumSyncMgrSyncItems
- ISyncMgrSyncItem
- ISyncMgrSyncItemInfo
ISyncMgrSyncItem et ISyncMgrSyncItemInfo sont utilisés pour décrire un élément de synchronisation unique impliqué dans la synchronisation avec le Centre de synchronisation. Un élément de synchronisation représente généralement un type de données particulier (par exemple, des images) ou un emplacement particulier de données.
Les éléments de synchronisation qui représentent différents emplacements de données permettent des synchronisations très spécifiques. La granularité de l’emplacement appartient à l’auteur du gestionnaire, mais la conception doit être soignée. S’il y a trop peu d’éléments de synchronisation (emplacements), l’utilisateur est limité dans sa capacité à synchroniser uniquement certaines données. À l’autre extrême, trop de granularité peut devenir manageable.
Si un gestionnaire prend en charge plusieurs types de données ou plusieurs emplacements de données, il doit prendre en charge plusieurs objets d’élément de synchronisation. Par exemple, un Assistant données personnelles (PDA) permet à l’utilisateur de synchroniser des contacts, des éléments de calendrier et des documents. Ces trois types de données doivent être représentés par trois objets uniques qui exposent chacun les interfaces ISyncMgrSyncItem et ISyncMgrSyncItemInfo .
L’interface IEnumSyncMgrSyncItems fournit un mécanisme permettant d’énumérer les éléments de synchronisation d’un gestionnaire. Pour récupérer cet énumérateur, le Centre de synchronisation appelle la méthode ISyncMgrSyncItemContainer::GetSyncItemEnumerator exposée par le gestionnaire. ISyncMgrSyncItemContainer contient également deux autres méthodes que le Centre de synchronisation peut utiliser pour récupérer des informations sur les éléments de synchronisation du gestionnaire :
- GetSyncItem retourne un élément de synchronisation spécifique.
- GetSyncItemCount retourne le nombre d’éléments de synchronisation pris en charge par le gestionnaire.
ISyncMgrHandler et ISyncMgrHandlerInfo sont utilisés pour décrire les propriétés du hander et lancer la synchronisation réelle. ISyncMgrHandler::Synchronize est l’endroit où le code du gestionnaire effectue la synchronisation et fournit des commentaires sur la progression et les éventuels problèmes qui se produisent.
La plupart des méthodes d’interface n’ont pas besoin d’être entièrement implémentées. Le Centre de synchronisation fournit une certaine quantité d’informations par défaut. Les interfaces permettent à un gestionnaire de remplacer ces informations et de fournir des informations personnalisées à afficher, si nécessaire.