Crear una aplicación de sincronización no administrada
En este tema se muestra cómo utilizar un lenguaje no administrado, como C++, para crear una aplicación que utiliza Microsoft Sync Framework para crear una sesión de sincronización y conectarla a los proveedores de origen y de destino.
En este tema se suponen conocimientos básicos de los conceptos de C++ y COM.
Los ejemplos de este tema se centran en los siguientes componentes de Sync Framework:
Descripción de las aplicaciones de sincronización
Una aplicación de sincronización es un componente de software que crea una sesión de sincronización, la conecta con dos proveedores de sincronización, la utiliza para iniciar la sincronización y hospeda a Sync Framework durante la sincronización.
Para obtener más información acerca del rol de la aplicación de sincronización, vea Implementar una aplicación de sincronización.
Requisitos de la compilación
Synchronization.h: declaraciones de los componentes de Sync Framework.
#include <synchronization.h>
SynchronizationErrors.h: códigos de error personalizados.
#include <synchronizationerrors.h>
Synchronization.lib: biblioteca de importación.
Ejemplo
El código de ejemplo de este tema muestra cómo crear una sesión de sincronización, inicializarla con los proveedores de origen y de destino, e iniciar la sesión. El ejemplo también ilustra una manera de mostrar las estadísticas de la sesión al usuario.
Tenga en cuenta que una aplicación puede obtener los proveedores de la manera que sea más adecuada para el tipo de aplicación. En el ejemplo se presupone que la aplicación ya tiene dos interfaces Interfaz ISyncProvider: una que representa la réplica de origen y otra que representa la réplica de destino.
Crear e iniciar una sesión de sincronización
En los ejemplos se utiliza CoCreateInstance
para crear un objeto IApplicationSyncServices. A continuación, este objeto se utiliza para crear e inicializar un objeto de sesión. Se inicia la sesión. Cuando la sincronización finaliza, las estadísticas de la sesión se muestran al usuario en un cuadro de mensaje.
HRESULT Synchronize(ISyncProvider* pProvSrc, ISyncProvider* pProvDest)
{
HRESULT hr = E_UNEXPECTED;
IApplicationSyncServices* pSvc = NULL;
hr = CoCreateInstance(CLSID_SyncServices, NULL, CLSCTX_INPROC_SERVER,
IID_IApplicationSyncServices, (void**)&pSvc);
if (SUCCEEDED(hr))
{
ISyncSession* pSession = NULL;
hr = pSvc->CreateSyncSession(pProvDest, pProvSrc, &pSession);
if (SUCCEEDED(hr))
{
SYNC_SESSION_STATISTICS syncStats;
// Arbitrarily choose "destination wins" conflict resolution.
hr = pSession->Start(CRP_DESTINATION_PROVIDER_WINS, &syncStats);
if (SUCCEEDED(hr))
{
// Display the session statistics to the user.
CString strMsg;
strMsg.Format(L"%d changes succeeded.\n%d changes failed.", syncStats.dwChangesApplied,
syncStats.dwChangesFailed);
MessageBox(NULL, strMsg.GetString(), L"Synchronization Statistics", MB_ICONINFORMATION);
}
pSession->Release();
}
pSvc->Release();
}
return hr;
}
Pasos siguientes
Ahora que ha creado una aplicación de sincronización, podría desear crear un proveedor de sincronización. Para obtener más información, vea Crear un proveedor de sincronización no administrado. También podría desear mejorar la aplicación registrándola para recibir notificaciones durante la sesión. Para obtener más información, vea Responder a eventos de sincronización.
Vea también
Referencia
Interfaz ISyncSession
Estructura SYNC_SESSION_STATISTICS