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 結構