RegQueryInfoKey函数检索有关指定注册表项的信息。
LONG RegQueryInfoKey(
HKEY 【的hKeyru-Latn】, | //查询键的句柄 |
LPTSTR 【lpClass】, | //类的字符串缓冲区的地址 |
LPDWORD 【lpcbClass】, | //类字符串缓冲区大小的地址 |
LPDWORD 【lpReserved】, | //保留 |
LPDWORD 【lpcSubKeys】, | //子地址数的缓冲区地址 |
LPDWORD 【lpcbMaxSubKeyLen】, | //缓冲区的最长子名长度的地址 |
LPDWORD 【lpcbMaxClassLen】, | //缓冲区的最长类字符串长度的地址 |
LPDWORD 【lpcValues】, | //数值项缓冲区的地址 |
LPDWORD 【lpcbMaxValueNameLen】, | //缓冲区的最长值名称长度的地址 |
LPDWORD 【lpcbMaxValueLen】, | //缓冲区的最长值数据长度的地址 |
LPDWORD 【lpcbSecurityDescriptor】, | //安全描述符长度的缓冲区地址 |
PFILETIME 【lpftLastWriteTime】 | //最后写入时间的缓冲区地址 |
); |
参数
【的hKeyru-Latn】
标识当前打开的键或任何以下预定义保留句柄值:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
【lpClass】
指向接收密钥类名称的缓冲区。此参数可以为NULL。
【lpcbClass】
指向一个变量,指定【lpClass】参数指向的缓冲区大小(以字符为单位)。这个大小应该包括终止空字符。当函数返回时,该变量包含存储在缓冲区中的类字符串的长度。返回的计数不包括终止空字符。如果缓冲区不够大,该函数返回ERROR_MORE_DATA,该变量包含字符串的大小(以字符为单位),不计算空字符。
如果【lpClass】为NULL,则【lpcbClass】可以为NULL。
Windows NT:如果【lpClass】参数是有效地址,但【lpcbClass】参数不是(例如,为NULL),则该函数返回ERROR_INVALID_PARAMETER。
Windows 95:如果【lpClass】参数是有效地址,但【lpcbClass】参数不是(例如,它为NULL),则该函数返回ERROR_SUCCESS而不是ERROR_INVALID_PARAMETER。为确保与其他平台的兼容性,请在调用该函数之前验证【lpcbClass】是否有效。
【lpReserved】
Reserved; must be NULL.
【lpcSubKeys】
指向接收指定键所包含的子项数的变量。此参数可以为NULL。
【lpcbMaxSubKeyLen】
指向一个变量,它接收键长度最长的子项的长度(以字符为单位)。返回的计数不包括终止空字符。此参数可以为NULL。
【lpcbMaxClassLen】
指向一个变量,它接收指定子项类的最长字符串的长度(以字符为单位)。返回的计数不包括终止空字符。此参数可以为NULL。
【lpcValues】
指向接收与密钥相关联的值数量的变量。此参数可以为NULL。
【lpcbMaxValueNameLen】
指向一个变量,它接收密钥最长值名称的长度(以字符为单位)。返回的计数不包括终止空字符。此参数可以为NULL。
【lpcbMaxValueLen】
指向一个变量,它接收键值中最长数据组件的长度(以字节为单位)。此参数可以为NULL。
【lpcbSecurityDescriptor】
指向接收密钥安全描述符长度(以字节为单位)的变量。此参数可以为NULL。
【lpftLastWriteTime】
指向FILETIME结构。此参数可以为NULL。
如果您在运行Windows NT的计算机上查询注册表,则该函数将设置FILETIME结构的成员,以指示上一次键或其任何值条目被修改的时间。
如果您在运行Windows 95的计算机上查询注册表,则该函数将FILETIME结构的成员设置为零。这是因为Windows 95操作系统没有跟踪注册表项的最后写入时间信息。
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。您可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标志的FormatMessage函数来获取错误的一般描述。
备注
必须使用KEY_QUERY_VALUE访问权限(KEY_READ访问包含KEY_QUERY_VALUE访问权限)来打开由【的hKeyru-Latn】参数确定的密钥。
也可以看看
FILETIME, RegDeleteKey, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegQueryValue, RegQueryValueEx