Функция RegEnumValue перечисляет значения в указанном открытом ключе реестра. Функция копирует одно имя значения и блок данных по индексу при каждом вызове.
LONGRegEnumValue ( HKEYhKey , // дескриптор запрашиваемого ключа DWORDdwIndex , // индекс запрашиваемого значения LPTSTRlpValueName , // адрес буфера для имени значения LPDWORDlpcbValueName , // адрес переменной с размером буфера для имени значения LPDWORDlpReserved , // зарезервировано LPDWORDlpType , // адрес переменной с типом данных LPBYTElpData , // адрес буфера для данных значения LPDWORDlpcbData // адрес переменной с размером буфера для данных );
Параметры:
Идентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG | |||||||||||||||||||||||
Указывает индекс затребованного значения. Его значение должно быть нулевым для первого вызова функции RegEnumValue и инкрементироваться для последующих вызовов. Поскольку значения не упорядочены, любой новое значение будет иметь произвольный индекс. Это означает, что функция может возвращать значения в любом порядке. | |||||||||||||||||||||||
Адрес буфера, в который возвращается имя значения, включая и завершающий нулевой символ. | |||||||||||||||||||||||
Указывает размер, в символах, буфера на который адресуется параметр lpValueName. Этот размер должен учитывать и нулевой символ – признак завершения строки. Когда функция возвращается, переменная, на которую указывает lpcbValueName, содержит количество символов, записанных в буфер. Возвращенное число не учитывает нулевой символ завершения строки. | |||||||||||||||||||||||
Зарезервировано. Должно быть NULL. | |||||||||||||||||||||||
Адрес переменной, в которую возвращается код типа значения. Этот код может быть одним из следующих значний:
Параметр lpType может быть NULL, если тип значения не требуется. | |||||||||||||||||||||||
Адрес буфера, в который возвращаются данные значения. Этот параметр может быть NULL, если данные значения не требуется. | |||||||||||||||||||||||
Адрес переменной, которая задает размер, в байтах, буфера, на который ссылается параметр lpData. Когда функция возвращается, переменная, на которую ссылается lpcbData, содержит количество байт, записанных в буфер. Этот параметр может быть NULL только тогда, если и lpData равно NULL. |
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
При ошибке, возвращаемое значение – это код ошибки, объявленный в 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.
Приложение может, также, установить индекс на последнее значение при первом вызове функции и затем декрементировать индекс до значения с индексом 0. Для получения индекса последнего значения, используйте RegQueryInfoKey.
Пока приложение использует функцию RegEnumValue, оно не должно вызывать любые другие функции реестра, которые могут изменить запрашиваемые значения.
Ключ, указанный в параметре hKey, должен быть открытым с доступом KEY_QUERY_VALUE. Для открытия ключа используйте функцию RegCreateKeyEx или RegOpenKeyEx.
Для определения максимального размера имени и буферров данных, используйте функцию RegQueryInfoKey.