IProviderSyncServices::CreateReplicaKeyMap
為指定的複寫建立 IReplicaKeyMap。
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
參數
- pbReplicaId
[in] 擁有此複寫機碼對應之複寫的識別碼。
- ppReplicaKeyMap
[out] 傳回新建立的複寫機碼對應物件。
傳回值
S_OK
E_OUTOFMEMORY
E_POINTER
如果此物件未初始化,則為 SYNC_E_INVALID_OPERATION。
如果 pbReplicaId 指定的識別碼不是用來初始化此物件的識別碼格式結構描述所指定的格式,則為 SYNC_E_ID_FORMAT_MISMATCH。
備註
複寫機碼對應物件會在複寫識別碼和 4 位元組機碼之間對應,也是建立同步處理知識的必要項。由於同步處理中繼資料中會重複用到複寫識別碼,所以 Sync Framework 會使用對照表將複寫識別碼對應為 4 位元組機碼,並且在整個同步處理中繼資料中都使用這些複寫機碼,而不使用複寫識別碼。
範例
下列範例會使用 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();
}