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

Открывает указанный раздел реестра.

Примечание Эта функция предоставляется только для совместимости с 16-разрядными версиями Windows. Приложения должны использовать функцию RegOpenKeyEx .
 

Синтаксис

LSTATUS RegOpenKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [out]          PHKEY  phkResult
);

Параметры

[in] hKey

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

  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_CONFIG
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS

[in, optional] lpSubKey

Имя открываемого раздела реестра. Этот ключ должен быть подразделом ключа, определяемого параметром hKey .

В именах ключей регистр не учитывается.

Если этот параметр имеет значение NULL или указатель на пустую строку, функция возвращает тот же дескриптор, который был передан.

Дополнительные сведения см. в разделе Ограничения размера элементов реестра.

[out] phkResult

Указатель на переменную, получающую дескриптор открытого ключа. Если раздел не является одним из предопределенных разделов реестра, вызовите функцию RegCloseKey после завершения использования дескриптора.

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

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

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

Комментарии

Функция RegOpenKey использует маску доступа по умолчанию для открытия ключа. Если для открытия ключа требуется другое право доступа, функция завершается сбоем, возвращая ERROR_ACCESS_DENIED. Приложение должно использовать функцию RegOpenKeyEx для указания маски доступа в этой ситуации.

RegOpenKey не создает указанный ключ, если ключ не существует в базе данных.

Если служба или приложение олицетворяет разных пользователей, не используйте эту функцию с HKEY_CURRENT_USER. Вместо этого вызовите функцию RegOpenCurrentUser .

Примечание

Заголовок winreg.h определяет RegOpenKey в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

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

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

RegCloseKey

RegDeleteKey

RegOpenKeyEx

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

Обзор реестра