Partager via


IProviderSyncServices::CreateReplicaKeyMap

Crée un objet IReplicaKeyMap pour un réplica spécifié.

HRESULT CreateReplicaKeyMap( 
  const BYTE *pbReplicaId,
  IReplicaKeyMap **ppReplicaKeyMap);

Paramètres

  • pbReplicaId
    [in] ID du réplica qui possède ce mappage de clés de réplica.
  • ppReplicaKeyMap
    [out] Retourne l'objet de mappage de clés de réplica nouvellement créé.

Valeur de retour

  • S_OK

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_INVALID_OPERATION lorsque cet objet n'est pas initialisé.

  • SYNC_E_ID_FORMAT_MISMATCH lorsque l'ID spécifié par pbReplicaId n'est pas au format spécifié par le schéma du format d'ID utilisé pour initialiser cet objet.

Notes

L'objet de mappage de clés de réplica effectue le mappage entre les ID de réplica et les clés de 4 octets, et est requis pour créer la connaissance de synchronisation. En raison du besoin répété d'ID de réplica dans les métadonnées de synchronisation, Sync Framework utilise une table pour mapper les ID de réplica à des clés de 4 octets, et utilise les clés de réplica dans les métadonnées de synchronisation au lieu des ID de réplica.

Exemple

L'exemple suivant utilise IProviderSyncServices pour créer plusieurs objets. L'exemple stocke les objets en vue d'une utilisation ultérieure.

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

Voir aussi

Référence

Interface IProviderSyncServices