Freigeben über


Vorgehensweise: Erstellen einer nicht verwalteten Synchronisierungsanwendung

In diesem Thema wird erläutert, wie Sie mit einer nicht verwalteten Sprache wie C++ eine Anwendung erstellen, die Microsoft Sync Framework verwendet, um eine Synchronisierungssitzung zu erstellen und diese mit Quellen- und Zielanbietern zu verbinden.

Dieses Thema setzt grundlegende Kenntnisse von C++ und COM-Konzepten voraus.

Die Beispiele in diesem Thema beziehen sich auf die folgenden Sync Framework-Komponenten:

Synchronisierungsanwendungen

Eine Synchronisierungsanwendung ist eine Softwarekomponente, die eine Synchronisierungssitzung erstellt, sie mit zwei Synchronisierungsanbietern verbindet, die Sitzung zum Starten der Synchronisierung verwendet und Sync Framework während der Synchronisierung hostet.

Weitere Informationen zur Rolle der Synchronisierungsanwendung finden Sie unter Implementieren einer Synchronisierungsanwendung.

Erstellungsanforderungen

  • Synchronization.h: Deklarationen für Sync Framework-Komponenten

    #include <synchronization.h>
    
  • SynchronizationErrors.h: Benutzerdefinierte Fehlercodes

    #include <synchronizationerrors.h>
    
  • Synchronization.lib: Importbibliothek

Beispiel

Der Beispielcode in diesem Thema veranschaulicht das Erstellen einer Synchronisierungssitzung, deren Initialisierung mit Quellen- und Zielanbietern und das Starten der Sitzung. Im Beispiel wird zudem eine Möglichkeit aufgezeigt, dem Benutzer Sitzungsstatistiken anzuzeigen.

Beachten Sie, dass die Anbietern für eine Anwendung auf unterschiedliche Weise abgerufen werden können, je nach Art der Anwendung. Im Beispiel wird davon ausgegangen, dass die Anwendung bereits über zwei ISyncProvider-Schnittstelle-Schnittstellen verfügt: eine, die das Quellreplikat darstellt, und eine, die das Zielreplikat darstellt.

Erstellen und Starten einer Synchronisierungssitzung

In den Beispielen wird CoCreateInstance verwendet, um ein IApplicationSyncServices-Objekt zu erstellen. Dieses Objekt wird anschließend verwendet, um ein Sitzungsobjekt zu erstellen und zu initialisieren. Die Sitzung wird gestartet. Beim Beenden der Synchronisierung wird dem Benutzer in einem Meldungsfeld die Sitzungsstatistik angezeigt.

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

Nächste Schritte

Nachdem Sie eine Synchronisierungsanwendung erstellt haben, können Sie nun einen Synchronisierungsanbieter erstellen. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines nicht verwalteten Synchronisierungsanbieters. Sie können die Anwendung zusätzlich verbessern, indem Sie sie dafür registrieren, während der Sitzung Benachrichtigungen zu empfangen. Weitere Informationen finden Sie unter Antworten auf Synchronisierungsereignisse.

Siehe auch

Verweis

ISyncSession-Schnittstelle
SYNC_SESSION_STATISTICS-Struktur

Konzepte

Implementieren einer Synchronisierungsanwendung