IProviderSyncServices::CreateReplicaKeyMap
Cria uma IReplicaKeyMap para uma réplica especificada.
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
Parâmetros
- pbReplicaId
[in] A ID da réplica que possui esse mapa de chave de réplica.
- ppReplicaKeyMap
[out] Retorna o objeto do mapa da chave da réplica recém-criado.
Valor de retorno
S_OK
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALID_OPERATION quando esse objeto não é inicializado.
SYNC_E_ID_FORMAT_MISMATCH quando a ID especificada por pbReplicaId não está no formato especificado pelo esquema de formato de ID usado para inicializar esse objeto.
Comentários
O objeto do mapa da chave da réplica mapeia entre IDs de réplica e chaves de 4 bytes e é necessário para criar o conhecimento de sincronização. Devido às ocorrências repetidas de IDs de réplica nos metadados de sincronização, o Sync Framework usa uma tabela para mapear IDs de réplica até chaves de 4 byte e usa as chaves de réplica em todos os metadados de sincronização em vez de IDs de réplica.
Exemplo
O exemplo a seguir usa IProviderSyncServices
para criar vários objetos. O exemplo armazena os objetos para uso posterior.
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();
}