IProviderSyncServices::CreateReplicaKeyMap
Создает объект IReplicaKeyMap для заданной реплики.
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
Параметры
- pbReplicaId
[in] Идентификатор реплики, которой принадлежит карта ключей реплики.
- ppReplicaKeyMap
[out] Возвращает вновь созданный объект карты ключей реплики.
Возвращаемое значение
S_OK
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALID_OPERATION, если этот объект не инициализирован.
SYNC_E_ID_FORMAT_MISMATCH, если формат идентификатора, заданного pbReplicaId, не совпадает с форматом, определенным в схеме форматов идентификаторов, которая используется для инициализации этого объекта.
Замечания
Объект карты ключей реплики сопоставляет идентификаторы реплики с 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();
}