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





Функция RegEnumValue перечисляет значения в указанном открытом ключе реестра. Функция копирует одно имя значения и блок данных по индексу при каждом вызове.

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

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

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
dwIndex Указывает индекс затребованного значения. Его значение должно быть нулевым для первого вызова функции RegEnumValue и инкрементироваться для последующих вызовов.

Поскольку значения не упорядочены, любой новое значение будет иметь произвольный индекс. Это означает, что функция может возвращать значения в любом порядке.
lpValueName Адрес буфера, в который возвращается имя значения, включая и завершающий нулевой символ.
lpcbValueName Указывает размер, в символах, буфера на который адресуется параметр lpValueName. Этот размер должен учитывать и нулевой символ – признак завершения строки.

Когда функция возвращается, переменная, на которую указывает lpcbValueName, содержит количество символов, записанных в буфер. Возвращенное число не учитывает нулевой символ завершения строки.
lpReserved Зарезервировано. Должно быть NULL.
lpType Адрес переменной, в которую возвращается код типа значения. Этот код может быть одним из следующих значний:

Значение:
Описание:
REG_BINARY Двоичные данные в любой форме.
REG_DWORD 32-ух битное число.
REG_DWORD_LITTLE_ENDIAN 32-ух битное число в формате little-endian (такое как и REG_DWORD). В формате little-endian, наиболее важный байт слова – это байт старешего порядка.
REG_DWORD_BIG_ENDIAN 32-ух битное число в формате big-endian. В формате big-endian, наиболее важный байт слова – это байт младшего порядка.
REG_EXPAND_SZ Нульзаканчивающаяся строка, которая содержит непредвиденные символы для переменных окружения (например, "%PATH%"). Это может быть строка в виде Unicode или ANSI, в зависимости от того, используете вы функции Unicode или функции ANSI.
REG_LINK Символическая ссылка в Unicode.
REG_MULTI_SZ Массив нульзаканчивающихся строк, заканчивающийся двумя нулевыми символами.
REG_NONE Неопределенный тип значения.
REG_RESOURCE_LIST Список ресурса драйвера устройства.
REG_SZ Нульзаканчивающаяся строка. Это может быть строка в виде Unicode или ANSI, в зависимости от того, используете вы функции Unicode или функции ANSI.


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

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

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

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

Замечания:

Для перечисления значений, приложение должно при первом вызове функции RegEnumValue установить параметр dwIndex в нулевое значение. Затем, приложение должно инкрементировать параметр dwIndex и вызывать функцию RegEnumValue до тех пор, пока не будет более значений (пока функция не вернет ERROR_NO_MORE_ITEMS).

Приложение может, также, установить индекс на последнее значение при первом вызове функции и затем декрементировать индекс до значения с индексом 0. Для получения индекса последнего значения, используйте RegQueryInfoKey.

Пока приложение использует функцию RegEnumValue, оно не должно вызывать любые другие функции реестра, которые могут изменить запрашиваемые значения.

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

Для определения максимального размера имени и буферров данных, используйте функцию RegQueryInfoKey.

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

RegCreateKeyEx, RegEnumKey, RegEnumKeyEx, RegOpenKeyEx, RegQueryInfoKey



Hosted by uCoz