IProviderSyncServices::CreateReplicaKeyMap
Erstellt eine IReplicaKeyMap für ein angegebenes Replikat.
HRESULT CreateReplicaKeyMap(
const BYTE *pbReplicaId,
IReplicaKeyMap **ppReplicaKeyMap);
Parameter
- pbReplicaId
[in] Die ID des Replikats, das der Besitzer dieser Replikatschlüsselzuordnung ist.
- ppReplicaKeyMap
[out] Gibt das neu erstellte Replikatschlüssel-Zuordnungsobjekt zurück.
Rückgabewert
S_OK
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALID_OPERATION, wenn dieses Objekt nicht initialisiert ist.
SYNC_E_ID_FORMAT_MISMATCH, wenn die von pbReplicaId angegebene ID nicht das Format aufweist, das von dem ID-Formatschema angegeben wird, mit dem dieses Objekt initialisiert wird.
Hinweise
Das Replikatschlüssel-Zuordnungsobjekt ordnet Replikat-IDs und 4-Bit-Schlüssel einander zu und ist zum Erstellen von Synchronisierungswissen erforderlich. Weil in den Synchronisierungsmetadaten wiederholt Replikat-IDs benötigt werden, ordnet Sync Framework mithilfe einer Tabelle Replikat-IDs 4-Bit-Schlüsseln zu und verwendet in den gesamten Synchronisierungsmetadaten die Replikatschlüssel statt der Replikat-IDs.
Beispiel
Im folgenden Beispiel wird IProviderSyncServices
verwendet, um mehrere Objekte zu erstellen. Im Beispiel werden die Objekte zur späteren Verwendung gespeichert.
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();
}