Uso del Administrador de sincronización desde un programa
Para permitir que la aplicación funcione con el Administrador de sincronización, debe implementar un objeto Component Object Model (COM) para controlar las notificaciones de sincronización que recibe de SyncMgr. El controlador de la aplicación realiza la sincronización de los elementos que controla. Incluido en el controlador, debe implementar la interfaz ISyncMgrSynchronize . Además, debe proporcionar un objeto enumerador e ISyncMgrEnumItems para cualquier elemento independiente que la aplicación pueda sincronizar.
SyncMgr implementa ISyncMgrSynchronizeCallback e ISyncMgrSynchronizeInvoke.
SyncMgr llama a los métodos de ISyncMgrSynchronize para obtener información sobre los elementos que controla la aplicación e información sobre el controlador que proporciona para sincronizar estos elementos.
En tiempo de ejecución, el proceso de sincronización sigue estos pasos.
- SyncMgr notifica a la aplicación que es hora de que se produzca la sincronización para uno de los elementos que controla la aplicación mediante una llamada al método ISyncMgrSynchronize::Initialize .
- SyncMgr llama a ISyncMgrSynchronize::EnumSyncMgrItems para obtener la interfaz ISyncMgrEnumItems de los elementos administrados por la aplicación.
- SyncMgr llama a ISyncMgrSynchronize::SetProgressCallback para proporcionar al controlador el puntero de interfaz para la interfaz ISyncMgrSynchronizeCallback . El controlador usa esta interfaz para volver a llamar a SyncMgr durante la sincronización.
- A continuación, SyncMgr llama al método ISyncMgrSynchronize::P repareForSync para dar al controlador la oportunidad de mostrar cualquier elemento de interfaz de usuario necesario antes de que comience la sincronización. Por ejemplo, una aplicación de correo electrónico puede mostrar un cuadro de diálogo de inicio de sesión de usuario.
- El controlador llama a ISyncMgrSynchronizeCallback::EnableModeless antes y después de mostrar los elementos de la interfaz de usuario. El controlador llama a ISyncMgrSynchronizeCallback::P repareForSyncCompleted cuando haya terminado.
- SyncMgr llama al método ISyncMgrSynchronize::Synchronize para iniciar la sincronización.
Durante el proceso de sincronización, SyncMgr sigue llamando a métodos en la interfaz ISyncMgrSynchronize . Puede enviar los errores del controlador, el progreso y las notificaciones. También puede enumerar los elementos que controla la aplicación o permitir que la aplicación muestre las propiedades de los elementos.
El controlador llama a métodos en ISyncMgrSynchronizeCallback para determinar si se debe omitir un elemento, registrar errores y publicar información de progreso durante el proceso de sincronización.
Para obtener más información, consulte las páginas de referencia relacionadas de las interfaces implicadas.
Una vez completada la sincronización, el controlador llama a ISyncMgrSynchronizeCallback::SynchronizeCompleted.