RegQueryValueA 函数 (winreg.h)

检索与指定注册表项的默认值或未命名值关联的数据。 数据必须是 以 null 结尾的字符串。

注意 此函数仅用于与 16 位版本的 Windows 兼容。 应用程序应使用 RegQueryValueEx 函数。
 

语法

LSTATUS RegQueryValueA(
  [in]                HKEY   hKey,
  [in, optional]      LPCSTR lpSubKey,
  [out, optional]     LPSTR  lpData,
  [in, out, optional] PLONG  lpcbData
);

参数

[in] hKey

打开的注册表项的句柄。 必须已使用KEY_QUERY_VALUE访问权限打开密钥。 有关详细信息,请参阅 注册表项安全和访问权限

此句柄由 RegCreateKeyExRegCreateKeyTransactedRegOpenKeyExRegOpenKeyTransacted 函数返回。 也可以是以下 预定义键之一:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

为其检索默认值的 hKey 参数的子项的名称。

键名称不区分大小写。

如果此参数为 NULL 或指向空字符串,则该函数将检索 由 hKey 标识的键的默认值。

有关详细信息,请参阅 注册表元素大小限制

[out, optional] lpData

指向接收指定键的默认值的缓冲区的指针。

如果 lpValueNULL,而 l ERROR_SUCCESS非 NULL,则该函数会将数据的大小(以字节为单位)存储在 l ERROR_SUCCESS指向的变量中。 这使应用程序能够确定为值的数据分配缓冲区的最佳方式。

[in, out, optional] lpcbData

指向变量的指针,该变量指定 lpValue 参数指向的缓冲区的大小(以字节为单位)。 函数返回时,此变量包含复制到 lpValue 的数据的大小,包括任何终止 null 字符。

如果数据具有REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ类型,则此大小包括任何终止 null 字符或字符。 有关详细信息,请参阅“备注”。

如果指定的 lpValue 缓冲区不够大,无法容纳数据,则函数将返回ERROR_MORE_DATA并将所需的缓冲区大小存储在 l ERROR_MORE_DATA Value 指向的变量中。 在这种情况下, lpValue 缓冲区的内容未定义。

返回值

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

如果函数失败,则返回值为 系统错误代码

如果 lpValue 缓冲区太小而无法接收值,则函数将返回ERROR_MORE_DATA。

注解

如果在将 Windows.h 文件) 之前显式调用 RegQueryValueA 或未定义 UNICODE 来 (此函数的 ANSI 版本,则此函数会将存储的 Unicode 字符串转换为 ANSI 字符串,然后再将其复制到 lpValue 参数指定的缓冲区。

如果数据具有REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ类型,则字符串可能未存储正确的 null 终止字符。 因此,即使函数返回ERROR_SUCCESS,应用程序也应该确保字符串在使用前正确终止;否则,它可能会覆盖缓冲区。 (请注意,REG_MULTI_SZ字符串应具有两个 null 终止字符。)

请注意,将重定向访问某些注册表项的操作。 有关详细信息,请参阅 注册表虚拟化注册表中的 32 位和 64 位应用程序数据

注意

winreg.h 标头将 RegQueryValue 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winreg.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

RegEnumKeyEx

RegEnumValue

RegQueryInfoKey

RegQueryValueEx

RegSetValueEx

注册表函数

注册表概述