Partager via


Procédure : créer une application de synchronisation non managée

Cette rubrique indique comment utiliser un langage non managé, tel que C++, pour créer une application qui utilise Microsoft Sync Framework pour créer une session de synchronisation et la connecter à des fournisseurs de source et de destination.

Cette rubrique suppose une connaissance de base des concepts C++ et COM.

Les exemples de cette rubrique reposent sur les composants Sync Framework suivants :

Présentation des applications de synchronisation

Une application de synchronisation est un composant logiciel qui crée une session de synchronisation, la connecte avec deux fournisseurs de synchronisation, l'utilise pour démarrer la synchronisation et héberge Sync Framework pendant la synchronisation.

Pour plus d'informations sur le rôle de l'application de synchronisation, consultez Applications de synchronisation.

Configuration de génération

  • Synchronization.h : déclarations pour les composants Sync Framework.

    #include <synchronization.h>
    
  • SynchronizationErrors.h : codes d'erreur personnalisés.

    #include <synchronizationerrors.h>
    
  • Synchronization.lib : bibliothèque d'importation.

Exemple

L'exemple de code dans cette rubrique indique comment créer une session de synchronisation, l'initialiser avec des fournisseurs de source et de destination, puis démarrer la session. L'exemple montre également une façon d'afficher des statistiques de session pour l'utilisateur.

Gardez à l'esprit qu'une application peut obtenir les fournisseurs de la façon la plus appropriée pour le type de l'application. L'exemple part du principe que l'application a déjà deux interfaces Interface ISyncProvider : une qui représente le réplica source et l'autre qui représente le réplica de destination.

Création et démarrage d'une session de synchronisation

L'exemple utilise CoCreateInstance pour créer un objet IApplicationSyncServices. Cet objet est ensuite utilisé pour créer et initialiser un objet de session. La session est démarrée. Lorsque la synchronisation est terminée, les statistiques de session sont affichées pour l'utilisateur dans une zone de message.

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

Étapes suivantes

Maintenant que vous avez créé une application de synchronisation, vous pouvez créer un fournisseur de synchronisation. Pour plus d'informations, consultez Procédure : créer un fournisseur de synchronisation non managé. Vous pouvez également améliorer l'application en l'inscrivant pour recevoir des notifications pendant la session. Pour plus d'informations, consultez Réponse aux événements de synchronisation.

Voir aussi

Référence

Interface ISyncSession
Structure SYNC_SESSION_STATISTICS

Concepts

Applications de synchronisation