Usando o Gerenciador de Sincronização de um Programa

Para permitir que seu aplicativo trabalhe com o Gerenciador de Sincronização, você deve implementar um objeto COM (Component Object Model) para lidar com as notificações de sincronização recebidas do SyncMgr. O manipulador do aplicativo executa a sincronização para os itens que você manipula. Incluído no manipulador, você deve implementar a interface ISyncMgrSynchronize . Além disso, você deve fornecer um objeto enumerador e ISyncMgrEnumItems para quaisquer itens separados que seu aplicativo possa sincronizar.

SyncMgr implementa ISyncMgrSynchronizeCallback e ISyncMgrSynchronizeInvoke.

O SyncMgr chama métodos em seu ISyncMgrSynchronize para obter informações sobre os itens que seu aplicativo manipula e informações sobre o manipulador que você fornece para sincronizar esses itens.

No runtime, o processo de sincronização segue estas etapas.

  1. SyncMgr notifica seu aplicativo de que é hora da sincronização ocorrer para um dos itens que seu aplicativo manipula chamando o método ISyncMgrSynchronize::Initialize .
  2. SyncMgr chama ISyncMgrSynchronize::EnumSyncMgrItems para obter a interface ISyncMgrEnumItems para os itens manipulados pelo aplicativo.
  3. SyncMgr chama ISyncMgrSynchronize::SetProgressCallback para fornecer ao manipulador o ponteiro de interface para a interface ISyncMgrSynchronizeCallback . Seu manipulador usa essa interface para chamar de volta para o SyncMgr durante a sincronização.
  4. Em seguida, o SyncMgr chama o método ISyncMgrSynchronize::P repareForSync para dar ao manipulador a chance de exibir qualquer elemento de interface do usuário necessário antes do início da sincronização. Por exemplo, um aplicativo de email pode exibir uma caixa de diálogo de logon do usuário.
  5. Seu manipulador chama ISyncMgrSynchronizeCallback::EnableModeless antes e depois de exibir quaisquer elementos da interface do usuário. Seu manipulador chama ISyncMgrSynchronizeCallback::P repareForSyncCompleted quando terminar.
  6. O SyncMgr chama o método ISyncMgrSynchronize::Synchronize para iniciar a sincronização.

Durante o processo de sincronização, o SyncMgr continua a chamar métodos em sua interface ISyncMgrSynchronize . Ele pode enviar erros, progresso e notificações do manipulador. Ele também pode enumerar por meio dos itens que seu aplicativo manipula ou permitir que seu aplicativo mostre propriedades para os itens.

Seu manipulador chama métodos no ISyncMgrSynchronizeCallback para determinar se um item deve ser ignorado, para registrar erros e postar informações de progresso durante o processo de sincronização.

Para obter mais informações, consulte as páginas de referência relacionadas para as interfaces envolvidas.

Quando a sincronização é concluída, seu manipulador chama ISyncMgrSynchronizeCallback::SynchronizeCompleted.