Share via


Cómo 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 Aplicaciones 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 supone que la aplicación ya tiene dos interfaces Interfaz ISyncProvider: una que representa la réplica de origen y la 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 Cómo 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

Conceptos

Aplicaciones de sincronización