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 (このオブジェクトが初期化されていない場合)
SYNC_E_ID_FORMAT_MISMATCH (pbReplicaId によって指定された ID が、このオブジェクトの初期化に使用される ID 形式スキーマによって指定された形式と一致しない場合)
説明
レプリカ キー マップ オブジェクトは、レプリカ 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();
}