Función RegOverridePredefKey (winreg.h)
Asigna una clave del Registro predefinida a la clave del Registro especificada.
Sintaxis
LSTATUS RegOverridePredefKey(
[in] HKEY hKey,
[in, optional] HKEY hNewHKey
);
Parámetros
[in] hKey
Identificador de una de las siguientes claves predefinidas:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[in, optional] hNewHKey
Identificador de una clave del Registro abierta. La función RegCreateKeyEx o RegOpenKeyEx devuelve este identificador. No puede ser una de las claves predefinidas. La función asigna hKey para hacer referencia a la clave hNewHKey . Esto afecta solo al proceso de llamada.
Si hNewHKey es NULL, la función restaura la asignación predeterminada de la clave predefinida.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si la función no se ejecuta correctamente, el valor devuelto es un código de error distinto de cero definido en Winerror.h. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción genérica del error.
Comentarios
La función RegOverridePredefKey está pensada para programas de instalación de software. Permite reasignar una clave predefinida, cargar un componente DLL que se instalará en el sistema, llamar a un punto de entrada en el archivo DLL y examinar los cambios en el registro que el componente intentó realizar. Después, el programa de instalación puede escribir esos cambios en las ubicaciones previstas por el archivo DLL o realizar cambios en los datos antes de escribirlos.
Por ejemplo, considere un programa de instalación que instala un control ActiveX como parte de una instalación de la aplicación. El programa de instalación debe llamar al punto de entrada DllRegisterServer del control para permitir que el control se registre. Antes de esta llamada, el programa de instalación puede llamar a RegOverridePredefKey para reasignar HKEY_CLASSES_ROOT a una clave temporal, como HKEY_CURRENT_USER\TemporaryInstall\DllRegistration. A continuación, llama a DllRegisterServer, que hace que el control ActiveX escriba sus entradas del Registro en la clave temporal. A continuación, el programa de instalación llama a RegOverridePredefKey de nuevo para restaurar la asignación original de HKEY_CLASSES_ROOT. El programa de instalación puede modificar las claves escritas en la clave temporal, si es necesario, antes de copiarlas en el HKEY_CLASSES_ROOT original.
Después de la llamada a RegOverridePredefKey, puede llamar de forma segura a RegCloseKey para cerrar el identificador hNewHKey . El sistema mantiene su propia referencia a hNewHKey.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winreg.h (incluye Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |