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 Applicazioni 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