RegQueryInfoKey

【勇芳软件工作室】汉化HomePreviousNext

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