Функция RegOverridePredefKey (winreg.h)

Сопоставляет предопределенный раздел реестра с указанным разделом реестра.

Синтаксис

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

Параметры

[in] hKey

Дескриптор одного из следующих предопределенных ключей:

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

[in, optional] hNewHKey

Дескриптор открытого раздела реестра. Этот дескриптор возвращается функцией RegCreateKeyEx или RegOpenKeyEx . Он не может быть одним из предопределенных ключей. Функция сопоставляет hKey для ссылки на ключ hNewHKey . Это влияет только на вызывающий процесс.

Если hNewHKey имеет значение NULL, функция восстанавливает сопоставление по умолчанию предопределенного ключа.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет ERROR_SUCCESS.

Если функция завершается сбоем, возвращаемое значение представляет собой ненулевой код ошибки, определенный в Winerror.h. Чтобы получить общее описание ошибки, можно использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM.

Комментарии

Функция RegOverridePredefKey предназначена для программ установки программного обеспечения. Это позволяет им повторно сопоставить предопределенный ключ, загрузить компонент DLL, который будет установлен в системе, вызвать точку входа в библиотеке DLL и изучить изменения в реестре, которые компонент пытался внести. Затем программа установки может записать эти изменения в расположения, предназначенные библиотекой DLL, или внести изменения в данные перед их записью.

Например, рассмотрим программу установки, которая устанавливает элемент ActiveX как часть установки приложения. Программа установки должна вызвать точку входа DllRegisterServer элемента управления, чтобы элемент управления мог зарегистрировать себя. Перед этим вызовом программа установки может вызвать RegOverridePredefKey , чтобы повторно сопоставить HKEY_CLASSES_ROOT с временным ключом, таким как HKEY_CURRENT_USER\TemporaryInstall\DllRegistration. Затем он вызывает DllRegisterServer, что приводит к тому, что элемент ActiveX записывает свои записи реестра во временный раздел. Затем программа установки снова вызывает RegOverridePredefKey , чтобы восстановить исходное сопоставление HKEY_CLASSES_ROOT. Программа установки может при необходимости изменить ключи, записанные во временный ключ, прежде чем копировать их в исходную HKEY_CLASSES_ROOT.

После вызова RegOverridePredefKey можно безопасно вызвать RegCloseKey , чтобы закрыть дескриптор hNewHKey . Система сохраняет собственную ссылку на hNewHKey.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winreg.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

DllRegisterServer

Функции реестра

Общие сведения о реестре