Condividi tramite


Procedura: creare un'applicazione di sincronizzazione non gestita

In questo argomento viene illustrato come utilizzare un linguaggio non gestito, ad esempio C++, per creare un'applicazione che utilizza Microsoft Sync Framework per la creazione di una sessione di sincronizzazione e per connetterla ai provider di origine e di destinazione.

Questo argomento presuppone una conoscenza di base dei concetti relativi a C++ e COM.

Gli esempi contenuti in questo argomento sono incentrati sui componenti seguenti di Sync Framework:

Informazioni sulle applicazioni di sincronizzazione

Un'applicazione di sincronizzazione è un componente software che crea una sessione di sincronizzazione, la connette a due provider di sincronizzazione, utilizza la sessione per avviare la sincronizzazione e ospita Sync Framework durante la sincronizzazione.

Per ulteriori informazioni sul ruolo dell'applicazione di sincronizzazione, vedere Implementazione di un'applicazione di sincronizzazione.

Requisiti di compilazione

  • Synchronization.h: dichiarazioni per i componenti di di Sync Framework.

    #include <synchronization.h>
    
  • SynchronizationErrors.h: codici di errore personalizzati.

    #include <synchronizationerrors.h>
    
  • Synchronization.lib: libreria di importazione.

Esempio

Nel codice di esempio di questo argomento viene illustrato come creare una sessione di sincronizzazione, inizializzarla con i provider di origine e di destinazione e avviare la sessione. Nell'esempio viene inoltre illustrata una modalità per visualizzare le statistiche della sessione all'utente.

È opportuno considerare che un'applicazione può ottenere i provider nel modo più appropriato al tipo di applicazione. L'esempio presuppone che l'applicazione disponga già di due interfacce Interfaccia ISyncProvider: una che rappresenta la replica di origine e l'altra che rappresenta la replica di destinazione.

Creazione e avvio di una sessione di sincronizzazione

Nell'esempio viene utilizzato CoCreateInstance per creare un oggetto IApplicationSyncServices. Questo oggetto viene quindi utilizzato per creare e inizializzare un oggetto di sessione. La sessione viene avviata. Al termine della sincronizzazione, le statistiche della sessione vengono mostrate all'utente in una finestra di messaggio.

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;
}

Passaggi successivi

Dopo aver creato un'applicazione di sincronizzazione, può essere necessario creare un provider di sincronizzazione. Per ulteriori informazioni, vedere Procedura: creare un provider di sincronizzazione non gestito. È anche necessario migliorare l'applicazione effettuandone la registrazione per ricevere notifiche durante la sessione. Per ulteriori informazioni, vedere Risposta agli eventi di sincronizzazione.

Vedere anche

Riferimento

Interfaccia ISyncSession
Struttura SYNC_SESSION_STATISTICS

Concetti

Implementazione di un'applicazione di sincronizzazione