IProviderSyncServices::CreateReplicaKeyMap
지정된 복제본에 대한 IReplicaKeyMap을 만듭니다.
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
매개 변수
- pbReplicaId
[in] 이 복제본 키 맵을 소유하는 복제본의 ID입니다.
- ppReplicaKeyMap
[out] 새로 만든 복제본 키 맵 개체를 반환합니다.
반환 값
S_OK
E_OUTOFMEMORY
E_POINTER
이 개체가 초기화되지 않았으면 SYNC_E_INVALID_OPERATION입니다.
pbReplicaId에서 지정한 ID가 이 개체를 초기화하는 데 사용되는 ID 형식 스키마에서 지정한 형식이 아니면 SYNC_E_ID_FORMAT_MISMATCH입니다.
주의
복제본 키 맵 개체는 복제본 ID와 4바이트 키를 매핑하며 동기화 정보를 만드는 데 필요합니다. 동기화 메타데이터에 복제본 ID가 반복적으로 필요하기 때문에 Sync Framework에서는 테이블을 사용하여 복제본 ID를 4바이트 키에 매핑하고 동기화 메타데이터 전체에 복제본 ID 대신 복제본 키를 사용합니다.
예제
다음 예제에서는 IProviderSyncServices
를 사용하여 몇 가지 개체를 만들고 나중에 사용하기 위해 저장합니다.
IProviderSyncServices* pProvSvc;
hr = GetProviderSyncServices(&c_idParams, &pProvSvc);
if (SUCCEEDED(hr))
{
IReplicaKeyMap* pReplicaKeyMap = NULL;
hr = pProvSvc->CreateReplicaKeyMap((BYTE*)&guidReplicaID, &pReplicaKeyMap);
if (SUCCEEDED(hr))
{
hr = SetReplicaKeyMap(pReplicaKeyMap);
if (SUCCEEDED(hr))
{
ISyncKnowledge* pKnowledge = NULL;
hr = pProvSvc->CreateSyncKnowledge(0, pReplicaKeyMap, &pKnowledge);
if (SUCCEEDED(hr))
{
hr = SetKnowledge(pKnowledge);
if (SUCCEEDED(hr))
{
IForgottenKnowledge* pForgottenKnowledge = NULL;
hr = pProvSvc->CreateForgottenKnowledge(pReplicaKeyMap, &pForgottenKnowledge);
if (SUCCEEDED(hr))
{
hr = SetForgottenKnowledge(pForgottenKnowledge);
pForgottenKnowledge->Release();
}
}
pKnowledge->Release();
}
}
pReplicaKeyMap->Release();
}
pProvSvc->Release();
}