Condividi tramite


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

Vedere anche

Riferimento

Interfaccia IProviderSyncServices