RegEnumValue

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

RegEnumValue函数枚举指定打开的注册表项的值。该函数在每次调用时复制一个索引值名称和数据块。

LONG RegEnumValue(

HKEY 【的hKeyru-Latn】,//查询键的句柄
DWORD 【dwIndex】,//查询值的索引
LPTSTR 【lpValueName】,//值为缓冲区的值字符串的地址
LPDWORD 【lpcbValueName】,//值为缓冲区大小的地址
LPDWORD 【lpReserved】,//保留
LPDWORD 【//值类型缓冲区的地址】,//类型代码的缓冲区地址
LPBYTE 【的lpData】,//数据缓冲区的地址
LPDWORD 【参数lpcbData】//数据缓冲区大小的地址
); 

参数

【的hKeyru-Latn】

标识当前打开的键或任何以下预定义保留句柄值:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

枚举的值与由【的hKeyru-Latn】标识的键相关联。

【dwIndex】

指定要检索的值的索引。对于第一次调用RegEnumValue函数,此参数应为零,然后为后续调用递增。

因为值没有被排序,任何新的值都将有一个任意的索引。这意味着该函数可以以任何顺序返回值。

【lpValueName】

指向接收值名称的缓冲区,包括终止空字符。

【lpcbValueName】

指向一个变量,指定【lpValueName】参数指向的缓冲区的大小(以字符为单位)。这个大小应该包括终止空字符。当函数返回时,【lpcbValueName】指向的变量包含缓冲区中存储的字符数。返回的计数不包括终止空字符。

【lpReserved】

Reserved; must be NULL.

【//值类型缓冲区的地址】

指向接收值输入的类型代码的变量。类型代码可以是以下值之一:

含义
REG_BINARY任何形式的二进制数据。
REG_DWORD一个32位数字。
REG_DWORD_LITTLE_ENDIAN32位数字的小端格式(与REG_DWORD相同)。在小端格式中,字的最高有效字节是高字节。这是运行Windows NT和Windows 95的计算机最常用的格式。
REG_DWORD_BIG_ENDIAN一个32位数字的big-endian格式。在big-endian格式中,一个字的最高有效字节是低位字节。
REG_EXPAND_SZ一个空值终止的字符串,包含对环境变量的未扩展引用(例如“%PATH%”)。它将是Unicode或ANSI字符串,具体取决于您是使用Unicode还是ANSI函数。
REG_LINK一个Unicode符号链接。
REG_MULTI_SZ由两个空字符终止的以null结尾的字符串数组。
REG_NONE没有定义的值类型。
REG_RESOURCE_LIST设备驱动程序资源列表。
REG_SZ一个空值终止的字符串。它将是Unicode或ANSI字符串,具体取决于您是使用Unicode还是ANSI函数。

如果不需要类型代码,【//值类型缓冲区的地址】参数可以为NULL。

【的lpData】

指向接收值输入的数据的缓冲区。如果不需要数据,此参数可以为NULL。

【参数lpcbData】

指向一个变量,指定【的lpData】参数指向的缓冲区的大小(以字节为单位)。当函数返回时,【参数lpcbData】参数指向的变量包含存储在缓冲区中的字节数。只有当【的lpData】为NULL时,此参数可以为NULL。

返回值

如果函数成功,则返回值为ERROR_SUCCESS。

如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。您可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标志的FormatMessage函数来获取错误的一般描述。

备注

要枚举值,应用程序最初应调用RegEnumValue函数,将【dwIndex】参数设置为零。然后应用程序将增加【dwIndex】并调用RegEnumValue函数,直到没有更多值(直到函数返回ERROR_NO_MORE_ITEMS)为止。

应用程序还可以将【dwIndex】设置为对该函数的第一次调用的最后一个值的索引,并减少索引,直到枚举索引为0的值为止。要检索最后一个值的索引,请使用RegQueryInfoKey函数。

使用RegEnumValue时,应用程序不应调用可能更改正在查询的密钥的任何注册功能。

必须使用KEY_QUERY_VALUE访问权限打开【的hKeyru-Latn】参数确定的密钥。要打开该键,请使用RegCreateKeyExRegOpenKeyEx功能。

要确定名称和数据缓冲区的最大大小,请使用RegQueryInfoKey功能。

也可以看看

RegCreateKeyEx, RegEnumKey, RegEnumKeyEx, RegOpenKeyEx, RegQueryInfoKey