Функция RegQueryInfoKey получает информацию об указанном ключе реестра.
LONG RegQueryInfoKey(
HKEY hKey, // дескриптор ключа
LPTSTR lpClass, // адрес буфера для имени класса
LPDWORD lpcbClass, // адрес размера буфер для имени класса
LPDWORD lpReserved, // зарезервировано
LPDWORD lpcSubKeys, // адрес буфера для количества подключей
LPDWORD lpcbMaxSubKeyLen, // адрес буфера для наибольшего размера имени подключа
LPDWORD lpcbMaxClassLen, // адрес буфера для наибольшего размера имени класса
LPDWORD lpcValues, // адрес буфера для количества вхождений значений
LPDWORD lpcbMaxValueNameLen, // адрес буфера для наибольшего размера имени значения
LPDWORD lpcbMaxValueLen, // адрес буфера для наибольшего размера данных значения
LPDWORD lpcbSecurityDescriptor, // адрес буфера для длины дескриптора безопасности
PFILETIME lpftLastWriteTime // адрес буфера для получения времени последней записи
);
Параметры:
hKey |
Идентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов:
HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG |
lpClass |
Адрес буфера, в который возвращается имя класса ключа. Этот параметр может быть NULL. |
lpcbClass |
Адрес переменной, в которой указан размер, в символах, буфера, на который указывает параметр lpClass. Должен учитываться и завершающий нулевой символ. При возвращении функции, эта переменная содержит длину строки с именем класса, записанной в буфер. Возвращенный размер не учитывает последний нулевой символ. Если буфер имеет недостаточный размер, функция возвращает ERROR_MORE_DATA, и переменная содержит нужный размер буфера, без учета нулевого символа.
Если lpClass равен NULL, то и lpcbClass может быть NULL.
Windows NT/2000/XP: Если параметр lpClass указывает на правельный адрес, а параметр lpcbClass – нет (например, равен NULL), то функция возвращает ERROR_INVALID_PARAMETER. |
lpReserved |
Зарезервировано; должно быть нулевым. |
lpcSubKeys |
Адрес переменной, в которую возвращается количество подключей, содержащихся в указанном ключе. Этот параметр может быть NULL. |
pcbMaxSubKeyLen |
Адрес переменной, в которую возвращается длина, в символах, наибольшего имени подключа. Этот параметр может быть NULL. |
lpcbMaxClassLen |
Адрес переменной, в которую возвращается длина, в символах, наибольшего имени класса ключа. Этот параметр может быть NULL. |
lpcValues |
Адрес переменной, в которую возвращается количество значений, ассоциирующихся с ключом. Этот параметр может быть NULL. |
lpcbMaxValueNameLen |
Адрес переменной, в которую возвращается длина, в символах, наибольшего имени значения. Этот параметр может быть NULL. |
lpcbMaxValueLen |
Адрес переменной, в которую возвращается длина, в байтах, наибольшего компонента среди значениий ключа. Этот параметр может быть NULL. |
lpcbSecurityDescriptor |
Адрес переменной, в которую возвращается длина, в байтах, дескриптора безопасности ключа. Этот параметр может быть NULL. |
lpftLastWriteTime |
Адрес структуры FILETIME. Этот параметр может быть NULL. |
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Ключ, указанный в параметре hKey, должен быть открыть с доступом KEY_QUERY_VALUE (доступ KEY_READ содержит и доступ KEY_QUERY_VALUE).
Смотрите также:
FILETIME, RegDeleteKey, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegQueryValue, RegQueryValueEx
|