방법: 관리되지 않는 동기화 응용 프로그램 만들기
이 항목에서는 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;
}
다음 단계
이제 동기화 응용 프로그램을 만들었으므로 동기화 공급자를 만들 수 있습니다. 자세한 내용은 방법: 관리되지 않는 동기화 공급자 만들기를 참조하십시오. 응용 프로그램을 개선하여 세션 도중 발생하는 알림을 수신 등록할 수도 있습니다. 자세한 내용은 동기화 이벤트 응답을 참조하십시오.
참고 항목
참조
ISyncSession 인터페이스
SYNC_SESSION_STATISTICS 구조