RegQueryValue函數找回給定注冊表鍵的默認值或未命名值所關聯的數據。這個數據必須是一個以空字符結束的字符串。
這個函數與Windows 3.1兼容?;赪in32的應用程序應該使用RegQueryValueEx函數。
LONG RegQueryValue(
HKEY hKey, // 要查詢鍵的句柄
LPCTSTR lpSubKey,
// 要查詢子鍵的名字
LPTSTR lpValue, // 返回字符串的緩存
PLONG lpcbValue // 接收返回字符串的大小
);
參數
- hKey
- 當前打開的鍵或下列已確定保留句柄值:
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
- 指向要被找回默認值的hKey參數子鍵的名字的以空字符結束的字符串。如果這個參數為NULL或指向一個空字符串,那么這個函數找回能被hKey識別的默認值。
- lpValue
- 指向與給定值的默認值相關聯的以空字符串結束的字符串的緩存區。
如果lpValue是NULL并且lpcbValue不是NULL,這個函數返回ERROR_SUCCESS,并取回被lpcbData指定的變量緩存的大?。ㄒ宰止潪閱挝唬_@個為值的數據緩存分配最好的途徑。
- lpcbValue
- 以字節為單位,指向lpData參數所指定地緩存區大小的變量。函數返回復制到lpData的數據大小的變量(包含結束字符)。
如果被lpData參數指定的緩存不夠大,這個函數返回ERROR_MORE_DATA值,并取回被lpcbData指定的變量緩存的大?。ㄒ宰止潪閱挝唬?。
在所有的案例中,在lpcbValue返回的值的大小包含字符串的結束符。
返回值
如果調用成功,返回ERROR_SUCCESS。
如果調用失敗,返回一個非零錯誤碼(定義在WINERROR.H)。你可以使用帶有FORMAT_MESSAGE_FROM_SYSTEM標記的FormatMessage函數獲得錯誤的普通描述信息。
注意
能被hKey參數識別的鍵必須被帶有KEY_QUERY_VALUE存取權限打開(KEY_READ存取權限包括KEY_QUERY_VALUE存取權限)。
如果這個函數的ANSI版本被使用(明確的調用RegQueryValueExA或在包含WINDOWS.H文件前不定義UNICODE),這個函數在復制它到lpValue參數給定的緩存區前,轉換存貯的Unicode字符串到ANSI字符串。
快速信息
Windows NT: 需要3.1或更高版本。
Windows: 需要Windows 95或更高版本。
Windows CE: 不支持。
頭文件: winreg.h。
輸入庫: advapi32.lib。
Unicode: 在Windows NT中作為Unicode和ANSI執行。
參見
Registry Overview, Registry Functions, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegQueryInfoKey, RegQueryValueEx, RegSetValue, RegSetValueEx