Основы программирования в Win32API. Марапулец Ю.В. - 76 стр.

UptoLike

Составители: 

аргументом, необходимым для любого запроса, является hKey, задающий раздел
реестра, информацию о котором вы хотите получить.
Таблица 5.4.
Тип данных Аргумент Описание
HKEY hKey
Дескриптор запрашиваемого раздела (обяза-
тельный аргумент)
LPTSTR lpClass
Строка описания класса, связанного с данным
разделом
LPDWORD lpcbClass
Размер строкового буфера класса; должен за-
даваться вместе с аргументом lpClass
LPDWORD lpReserved
Зарезервирован; всегда должен иметь значение
NULL
LPDWORD lpcSubKeys
Количество подразделов, которые находятся
в запрашиваемом разделе
LPDWORD lpcbMaxSubKeyLen Размер самого длинного имени подраздела.
LPDWORD lpcbMaxClassLen
Размер самой длинной строки описания для
классов, связанных с подразделами
LPDWORD lpcValues
Количество параметров, содержащихся
в данном разделе
LPDWORD lpcbMaxValueNameLen
Размер самого длинного из имен параметров,
содержащихся в данном разделе
LPDWORD lpcbMaxValueLen
Наибольшая длина параметра среди парамет-
ров, содержащихся в данном разделе
LPDWORD lpcbSecurityDescriptor
Длина дескриптора безопасности (только для
Windows NT)
PFILETIME lpftLastWriteTime Последнее время записи (только для Windows NT)
Посредством функции RegEnumKey() можно осуществить циклический за-
прос имен подразделов. Определяется указанная функция следующим образом:
LONG RegEnumKey( HKEX hKey, // дескриптор запрашиваемого раздела
DWORD dwIndex, // номер запрашиваемого подраздела
LPTSTR lpName, // адрес буфера для имени подраздела
DWORD cbName, // размер буфера для имени подраздела);…
Каждый раз при вызове функции RegEnumKey() со следующим значением
номера dwIndex в переменной lpName возвращается имя другой подстроки.
Когда список подстрок заканчивается, функция RegEnumKey()
выдает код ошибки ERROR_NO_MORE_ITEMS,
свидетельствующей о том,
что подразделов больше нет. Порядок, в котором эти элементы возвращаются,
не имеет значения. До тех пор пока мы не зададим индекс, для которого нет
подраздела с таким номером, функция будет возвращать значение ER-
ROR_SUCCESS,
а в массиве lpName будет храниться имя соответствующего
подраздела. При получении любого результирующего значения, кроме ER-
ROR_SUCCESS
и ERROR_NO_MORE_ITEMS, должно выводиться сообщение
об ошибке.
76
аргументом, необходимым для любого запроса, является hKey, задающий раздел
реестра, информацию о котором вы хотите получить.
                                                                           Таблица 5.4.

 Тип данных         Аргумент                              Описание
                                         Дескриптор запрашиваемого раздела (обяза-
   HKEY               hKey
                                       тельный аргумент)
                                         Строка описания класса, связанного с данным
  LPTSTR             lpClass
                                       разделом
                                         Размер строкового буфера класса; должен за-
 LPDWORD            lpcbClass
                                       даваться вместе с аргументом lpClass
                                         Зарезервирован; всегда должен иметь значение
 LPDWORD           lpReserved
                                       NULL
                                         Количество подразделов, которые находятся
 LPDWORD           lpcSubKeys
                                       в запрашиваемом разделе
 LPDWORD       lpcbMaxSubKeyLen          Размер самого длинного имени подраздела.
                                         Размер самой длинной строки описания для
 LPDWORD        lpcbMaxClassLen
                                       классов, связанных с подразделами
                                         Количество      параметров,     содержащихся
 LPDWORD            lpcValues
                                       в данном разделе
                                         Размер самого длинного из имен параметров,
 LPDWORD      lpcbMaxValueNameLen
                                       содержащихся в данном разделе
                                         Наибольшая длина параметра среди парамет-
 LPDWORD        lpcbMaxValueLen
                                       ров, содержащихся в данном разделе
                                         Длина дескриптора безопасности (только для
 LPDWORD      lpcbSecurityDescriptor
                                       Windows NT)
 PFILETIME      lpftLastWriteTime       Последнее время записи (только для Windows NT)

    Посредством функции RegEnumKey() можно осуществить циклический за-
прос имен подразделов. Определяется указанная функция следующим образом:

LONG RegEnumKey( HKEX hKey,     // дескриптор запрашиваемого раздела
   DWORD dwIndex, // номер запрашиваемого подраздела
   LPTSTR lpName,   // адрес буфера для имени подраздела
   DWORD cbName, // размер буфера для имени подраздела);…

    Каждый раз при вызове функции RegEnumKey() со следующим значением
номера dwIndex в переменной lpName возвращается имя другой подстроки.
Когда    список    подстрок    заканчивается,    функция    RegEnumKey()
выдает код ошибки ERROR_NO_MORE_ITEMS, свидетельствующей о том,
что подразделов больше нет. Порядок, в котором эти элементы возвращаются,
не имеет значения. До тех пор пока мы не зададим индекс, для которого нет
подраздела с таким номером, функция будет возвращать значение ER-
ROR_SUCCESS, а в массиве lpName будет храниться имя соответствующего
подраздела. При получении любого результирующего значения, кроме ER-
ROR_SUCCESS и ERROR_NO_MORE_ITEMS, должно выводиться сообщение
об ошибке.

                                         76