Funzione RegOverridePredefKey (winreg.h)

Esegue il mapping di una chiave del Registro di sistema predefinita alla chiave del Registro di sistema specificata.

Sintassi

LSTATUS RegOverridePredefKey(
  [in]           HKEY hKey,
  [in, optional] HKEY hNewHKey
);

Parametri

[in] hKey

Handle per una delle chiavi predefinite seguenti:

  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_CONFIG
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_PERFORMANCE_DATA
  • HKEY_USERS

[in, optional] hNewHKey

Handle per una chiave del Registro di sistema aperta. Questo handle viene restituito dalla funzione RegCreateKeyEx o RegOpenKeyEx . Non può essere una delle chiavi predefinite. La funzione esegue il mapping di hKey per fare riferimento alla chiave hNewHKey . Ciò influisce solo sul processo chiamante.

Se hNewHKey è NULL, la funzione ripristina il mapping predefinito della chiave predefinita.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in Winerror.h. È possibile usare la funzione FormatMessage con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.

Commenti

La funzione RegOverridePredefKey è destinata ai programmi di installazione software. Consente di modificare il mapping di una chiave predefinita, caricare un componente DLL che verrà installato nel sistema, chiamare un punto di ingresso nella DLL ed esaminare le modifiche apportate al Registro di sistema che il componente ha tentato di apportare. Il programma di installazione può quindi scrivere tali modifiche nei percorsi previsti dalla DLL o apportare modifiche ai dati prima di scriverli.

Si consideri ad esempio un programma di installazione che installa un controllo ActiveX come parte di un'installazione di un'applicazione. Il programma di installazione deve chiamare il punto di ingresso DllRegisterServer del controllo per consentire al controllo di registrarsi. Prima di questa chiamata, il programma di installazione può chiamare RegOverridePredefKey per eseguire nuovamente il mapping dei HKEY_CLASSES_ROOT a una chiave temporanea, ad esempio HKEY_CURRENT_USER\TemporaryInstall\DllRegistration. Chiama quindi DllRegisterServer, che fa sì che il controllo ActiveX scriva le voci del Registro di sistema nella chiave temporanea. Il programma di installazione chiama quindi nuovamente RegOverridePredefKey per ripristinare il mapping originale di HKEY_CLASSES_ROOT. Il programma di installazione può modificare le chiavi scritte nella chiave temporanea, se necessario, prima di copiarle nel HKEY_CLASSES_ROOT originale.

Dopo la chiamata a RegOverridePredefKey, è possibile chiamare in modo sicuro RegCloseKey per chiudere l'handle hNewHKey . Il sistema mantiene il proprio riferimento a hNewHKey.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Dllregisterserver

Funzioni del Registro di sistema

Panoramica del Registro di sistema