RegQueryValue函數(shù)找回給定注冊表鍵的默認(rèn)值或未命名值所關(guān)聯(lián)的數(shù)據(jù)。這個數(shù)據(jù)必須是一個以空字符結(jié)束的字符串。
這個函數(shù)與Windows 3.1兼容。基于Win32的應(yīng)用程序應(yīng)該使用RegQueryValueEx函數(shù)。
LONG RegQueryValue(
HKEY hKey, // 要查詢鍵的句柄
LPCTSTR lpSubKey,
// 要查詢子鍵的名字
LPTSTR lpValue, // 返回字符串的緩存
PLONG lpcbValue // 接收返回字符串的大小
);
參數(shù)
- hKey
- 當(dāng)前打開的鍵或下列已確定保留句柄值:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT: HKEY_PERFORMANCE_DATA
Windows 95和Windows 98: HKEY_DYN_DATA
- lpSubKey
- 指向要被找回默認(rèn)值的hKey參數(shù)子鍵的名字的以空字符結(jié)束的字符串。如果這個參數(shù)為NULL或指向一個空字符串,那么這個函數(shù)找回能被hKey識別的默認(rèn)值。
- lpValue
- 指向與給定值的默認(rèn)值相關(guān)聯(lián)的以空字符串結(jié)束的字符串的緩存區(qū)。
如果lpValue是NULL并且lpcbValue不是NULL,這個函數(shù)返回ERROR_SUCCESS,并取回被lpcbData指定的變量緩存的大小(以字節(jié)為單位)。這個為值的數(shù)據(jù)緩存分配最好的途徑。
- lpcbValue
- 以字節(jié)為單位,指向lpData參數(shù)所指定地緩存區(qū)大小的變量。函數(shù)返回復(fù)制到lpData的數(shù)據(jù)大小的變量(包含結(jié)束字符)。
如果被lpData參數(shù)指定的緩存不夠大,這個函數(shù)返回ERROR_MORE_DATA值,并取回被lpcbData指定的變量緩存的大小(以字節(jié)為單位)。
在所有的案例中,在lpcbValue返回的值的大小包含字符串的結(jié)束符。
返回值
如果調(diào)用成功,返回ERROR_SUCCESS。
如果調(diào)用失敗,返回一個非零錯誤碼(定義在WINERROR.H)。你可以使用帶有FORMAT_MESSAGE_FROM_SYSTEM標(biāo)記的FormatMessage函數(shù)獲得錯誤的普通描述信息。
注意
能被hKey參數(shù)識別的鍵必須被帶有KEY_QUERY_VALUE存取權(quán)限打開(KEY_READ存取權(quán)限包括KEY_QUERY_VALUE存取權(quán)限)。
如果這個函數(shù)的ANSI版本被使用(明確的調(diào)用RegQueryValueExA或在包含WINDOWS.H文件前不定義UNICODE),這個函數(shù)在復(fù)制它到lpValue參數(shù)給定的緩存區(qū)前,轉(zhuǎn)換存貯的Unicode字符串到ANSI字符串。
快速信息
Windows NT: 需要3.1或更高版本。
Windows: 需要Windows 95或更高版本。
Windows CE: 不支持。
頭文件: winreg.h。
輸入庫: advapi32.lib。
Unicode: 在Windows NT中作為Unicode和ANSI執(zhí)行。
參見
Registry Overview, Registry Functions, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegQueryInfoKey, RegQueryValueEx, RegSetValue, RegSetValueEx