IProviderSyncServices::CreateReplicaKeyMap
Crea un oggetto IReplicaKeyMap per una replica specificata.
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
Parametri
- pbReplicaId
[in] ID della replica proprietaria di questa mappa di chiavi di replica.
- ppReplicaKeyMap
[out] Restituisce l'oggetto della mappa di chiavi di replica appena creato.
Valore restituito
S_OK
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALID_OPERATION se questo oggetto non viene inizializzato.
SYNC_E_ID_FORMAT_MISMATCH quando l'ID specificato da pbReplicaId non è nel formato specificato dallo schema del formato dell'ID utilizzato per inizializzare questo oggetto.
Osservazioni
L'oggetto della mappa di chiavi di replica esegue il mapping tra ID replica e chiavi a 4 byte ed è necessario per la creazione della conoscenza di sincronizzazione. A causa dell'esigenza ripetuta di ID replica nei metadati per la sincronizzazione, Sync Framework utilizza una tabella per eseguire il mapping degli ID replica fino alle chiavi a 4 byte e utilizza le chiavi di replica in tutti i metadati per la sincronizzazione anziché gli ID replica.
Esempio
Nell'esempio seguente viene utilizzato IProviderSyncServices
per creare diversi oggetti. Gli oggetti vengono archiviati per un utilizzo futuro.
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();
}