RegQueryValue

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

RegQueryValue函数检索与注册表中指定键的未命名值相关联的值。注册表中的值具有名称,类型和数据组件。此函数检索具有NULL名称的键的第一个值的数据。此函数用于与Windows 3.1版兼容。基于Win32的应用程序应使用RegQueryValueEx功能。

LONG RegQueryValue(

HKEY 【的hKeyru-Latn】,//查询键的句柄
LPCTSTR 【lpSubKey】,//查询子键的名称地址
LPTSTR 【lpValue】,//返回字符串的缓冲区地址
PLONG 【lpcbValue】//返回字符串大小的缓冲区地址
); 

参数

【的hKeyru-Latn】

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

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

【lpSubKey】

指向一个以null结尾的字符串,其中包含要为其检索值的【的hKeyru-Latn】参数的子项的名称。如果此参数为NULL或指向空字符串,该函数将检索由【的hKeyru-Latn】标识的密钥由RegSetValue函数设置的值。

【lpValue】

指向接收与【lpSubKey】参数相关联的值的缓冲区。缓冲区应该足够大以包含终止空字符。如果不需要数据,此参数可以为NULL。

如果【lpValue】为NULL,并且【lpcbValue】不为NULL,则该函数将值(包括终止空字符)引用的数据的字节大小设置为【lpcbValue】指向的变量。这使得应用程序可以确定如何最佳地为值键的数据预分配缓冲区。

【lpcbValue】

指向一个变量,指定【lpValue】参数指向的缓冲区的大小(以字节为单位)。当函数返回时,该变量包含复制到【lpValue】的数据的大小,包括终止空字符。

如果由【lpValue】参数指定的缓冲区不够大以容纳数据,则该函数返回值ERROR_MORE_DATA,并将所需的缓冲区大小(以字节为单位)存储到【lpcbValue】指向的变量中。

如果【lpValue】为NULL,则函数返回ERROR_SUCCESS,并将字符串的大小(以字节为单位)存储到【lpcbValue】所指向的变量中。这使得应用程序可以确定为值键的数据分配缓冲区的最佳方式。

在所有情况下,【lpcbValue】中返回的值始终包含字符串中终止空字符的大小。

返回值

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

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

备注

必须使用KEY_QUERY_VALUE访问权限(KEY_READ访问包含KEY_QUERY_VALUE访问权限)打开【的hKeyru-Latn】参数确定的密钥。

如果使用此ANSI函数(通过显式调用RegQueryValue或在包含WINDOWS.H文件之前不定义Unicode),则该函数将存储的Unicode字符串转换为ANSI字符串,然后将其复制到由【lpValue】参数。

也可以看看

RegEnumKey, RegEnumKeyEx, RegEnumValue, RegQueryInfoKey, RegQueryValueEx, RegSetValue, RegSetValueEx