w32api - Справочник по Windows API
Найти:
На:





Функция RegQueryValueEx возвращает тип и данние указанного значения по имени, ассоциирующимся с открытым ключом реестра.

LONG RegQueryValueEx(
    HKEY hKey,		// дескриптор ключа 
    LPTSTR lpValueName,	// адерс имени значения
    LPDWORD lpReserved,	// зарезервировано
    LPDWORD lpType,	// адрес переменной для типа значения
    LPBYTE lpData,	// адрес буфера для данных
    LPDWORD lpcbData 	// адрес переменной для размер буфера данных
);
Параметры:

hKey Идентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
lpValueName Адрес нульзаканчивающейся строки, содержащей имя требуемого значения.
lpReserved Зарезервировано; должно быть NULL
lpType Адрес переменной, в которую возвращается тип значения ключа. Возвращенное в этом параметре значение может принимать одно из следующих значений:


Значение:

Назначение:

KEY_ALL_ACCESS  

Комбинация из KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, и KEY_SET_VALUE.

KEY_CREATE_LINK  

Права создавать символические ссылки.

KEY_CREATE_SUB_KEY  

Права создавать подключи.

KEY_ENUMERATE_SUB_KEYS  

Права перечислять подключи.

KEY_EXECUTE  

Права на доступ ко чтению.

KEY_NOTIFY  

Права на изменение нотификации.

KEY_QUERY_VALUE  

Права запрашивать данные подключей.

KEY_READ  

Комбинация из KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, и KEY_NOTIFY.

KEY_SET_VALUE  

Права устанавливать данные подключей.

KEY_WRITE  

Комбинация из KEY_SET_VALUE и KEY_CREATE_SUB_KEY.


Параметр lpType может быть NULL, если тип не требуется.
lpData Адрес буфера, в который помещается данные значения. Это параметр может быть NULL, если данные не требуются.
lpcbData Адрес переменной, указывающей размер в байтах буфера, на который ссылается параметр lpData. Когда функция возвращается, эта переменная содержит размер данных, скопированных в lpData.

Если буфер, указанный в параметре lpData, слишком мал для данных, то функция возвращает ERROR_MORE_DATA, и помещает нужный размер в переменную, на которую ссылается lpcbData.

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

Если данные имеют тип REG_SZ, REG_MULTI_SZ или REG_EXPAND_SZ, тогда lpData содржит размер с учетом нулевого завершающего символа.

Параметр lpcbData может быть NULL, если только lpData равен NULL.

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

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

При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.

Замечания:

Ключ, указанный в hKey, должен быть открытым с правом доступа KEY_QUERY_VALUE. Для открытия ключа, используйте функцию RegCreateKeyEx или RegOpenKeyEx.

Эта функция не преобразует имена переменных окружения в данных значения, когда тип значений REG_EXPAND_SZ. Для этого может использоваться функция ExpandEnvironmentStrings.

Если данные значения имеют тип REG_SZ, REG_MULTI_SZ или REG_EXPAND_SZ, и используется ANSI версия этой функции (если произведен точный вызов RegQueryValue или не был объявлен Unicode перед добавлением заголовочного файла WINDOWS.H), эта функция преобразует записанную строку Unicode в строку ANSI перед копированием в буфер, указанный в параметре lpData.

Если функция RegQueryValueEx вызывается с hKey, установленным в дескриптор HKEY_PERFORMANCE_DATA, и со строкой значения указанного объекта, то возвращаемая структура данных иногода имеет незапрошенные значения. Не удивляйтесь, - это нормально.

Смотрите также:

ExpandEnvironmentStrings, RegCreateKeyEx, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegOpenKeyEx, RegQueryInfoKey, RegQueryValue



Hosted by uCoz