Partilhar via


Desenvolvendo um manipulador da Central de Sincronização do Windows

Este tópico fornece um exame passo a passo dos requisitos para criar um arquivo DLL que implementa um manipulador a ser usado com a Central de Sincronização. Essas informações são válidas a partir do Windows Vista.

A experiência de sincronização do Windows antes do Vista

O Windows XP forneceu um Synchronization Manager (mobsync.exe). Muitos dispositivos, como leitores de mp3, telemóveis e câmaras, também forneciam as suas próprias interfaces de sincronização em vez de utilizarem o Gestor de Sincronização. Isso resultou em uma experiência de usuário inconsistente e não centralizada.

O novo recurso da Central de Sincronização fornecido no Windows Vista tem várias vantagens em relação ao Gerenciador de Sincronização mais antigo.

  • Melhor capacidade de descoberta
  • Menor necessidade de ação direta do usuário
  • Não bloqueia outras operações
  • Melhor visualização do progresso da sincronização
  • Modelo de desenvolvimento mais fácil de entender

APIs da Central de Sincronização

A Central de Sincronização se comunica com manipuladores por meio de várias interfaces COM (Component Object Model). Nem todas essas interfaces são necessárias para implementar um manipulador da Central de Sincronização. Este tópico foi dividido em duas seções. A primeira seção explica as interfaces COM essenciais que cada manipulador deve suportar, e a segunda seção examina as interfaces COM opcionais e examina as razões pelas quais um manipulador as suportaria.

Interfaces essenciais

Todos os manipuladores da Central de Sincronização devem oferecer suporte às seguintes interfaces:

ISyncMgrSyncItem e ISyncMgrSyncItemInfo são usados para descrever um único item de sincronização envolvido na sincronização com a Central de Sincronização. Um item de sincronização geralmente representa um tipo de dados específico (como imagens) ou um local específico de dados.

Itens de sincronização que representam locais de dados diferentes permitem sincronizações muito específicas. A granularidade do local cabe ao autor do manipulador, mas deve-se ter cuidado no projeto. Se houver poucos itens de sincronização (locais), o usuário será restrito em sua capacidade de sincronizar apenas determinados dados. No outro extremo, muita granularidade pode se tornar incontrolável.

Se um manipulador oferecer suporte a mais de um tipo de dados ou vários locais de dados, ele precisará oferecer suporte a mais de um objeto de item de sincronização. Um exemplo pode ser um assistente de dados pessoais (PDA) que permite ao usuário sincronizar contatos, itens de calendário e documentos. Esses três tipos de dados precisariam ser representados por três objetos exclusivos que expõem as interfaces ISyncMgrSyncItem e ISyncMgrSyncItemInfo.

A IEnumSyncMgrSyncItems interface fornece um mecanismo para enumerar os itens de sincronização de um manipulador. Para recuperar esse enumerador, a Central de Sincronização chama o ISyncMgrSyncItemContainer::GetSyncItemEnumerator método exposto pelo manipulador. ISyncMgrSyncItemContainer também contém dois outros métodos que a Central de Sincronização pode usar para recuperar informações sobre os itens de sincronização do manipulador:

  • GetSyncItem retorna um item de sincronização específico.
  • GetSyncItemCount retorna o número de itens de sincronização suportados pelo manipulador.

ISyncMgrHandler e ISyncMgrHandlerInfo são usados para descrever as propriedades do hander e iniciar a sincronização real. ISyncMgrHandler::Synchronize é onde o código do manipulador realiza a sincronização e fornece feedback sobre o progresso e quaisquer problemas que ocorram.

Muitos dos métodos de interface não precisam ser totalmente implementados. A Central de Sincronização fornece uma certa quantidade de informações padrão. As interfaces permitem que um manipulador substitua essas informações e forneça informações personalizadas para exibição, se necessário.