Freigeben über


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();
}

Siehe auch

Verweis

IProviderSyncServices-Schnittstelle