共用方式為


HOW TO:建立 Unmanaged 同步處理應用程式

本主題示範如何使用 Unmanaged 語言 (如 C++) 建立應用程式,以使用 Microsoft Sync Framework 建立同步處理工作階段,並連接至來源和目的地提供者。

本主題假設您對 C++ 和 COM 已有基本的了解。

本主題中的範例著重於下列 Sync Framework 元件:

了解同步處理應用程式

同步處理應用程式是建立同步處理工作階段的軟體元件,在同步處理期間,將它與兩個同步處理提供者連接,使用工作階段來啟動同步處理,並裝載 Sync Framework。

如需同步處理應用程式所扮演角色的詳細資訊,請參閱實作同步處理應用程式

組建需求

  • Synchronization.h:Sync Framework 元件的宣告。

    #include <synchronization.h>
    
  • SynchronizationErrors.h:自訂錯誤碼。

    #include <synchronizationerrors.h>
    
  • Synchronization.lib:匯入程式庫。

範例

本主題中的範例程式碼示範如何建立同步處理工作階段,用來源和目的地提供者初始化,然後啟動工作階段。此範例也示範一種方式來向使用者顯示工作階段統計資料。

請注意,應用程式可以用最適合這種應用程式的方式取得提供者。此範例假設應用程式已經有兩個 ISyncProvider 介面 介面:一個代表來源複寫,另一個代表目的地複寫。

建立及啟動同步處理工作階段

此範例會使用 CoCreateInstance 來建立 IApplicationSyncServices 物件。然後,再使用此物件來建立及啟動工作階段物件。啟動工作階段。當同步處理工作階段完成時,就會在訊息方塊中向使用者顯示工作階段統計資料。

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

後續步驟

現在,您已經建立了同步處理應用程式,可能也要建立同步處理提供者。如需詳細資訊,請參閱 HOW TO:建立 Unmanaged 同步處理提供者。您也可能要透過註冊,在同步處理期間接收通知,以增強應用程式的功能。如需詳細資訊,請參閱 回應同步處理事件

請參閱

參考

ISyncSession 介面
SYNC_SESSION_STATISTICS 結構

概念

實作同步處理應用程式