Win32 SDK登錄檔操作函式——RegQueryValue (轉)

worldblog發表於2007-12-11
Win32 SDK登錄檔操作函式——RegQueryValue (轉)[@more@]

_regqueryvalue>RegQueryValue



RegQueryValue找回給定登錄檔鍵的預設值或未命名值所關聯的資料。這個資料必須是一個以空字元結束的字串。



這個函式與 3.1相容。基於Win32的應用應該使用語言/VISUAL%20MSDN/登錄檔操作/reg_3wzc.htm">RegQueryValueEx函式。

LONG RegQueryValue(
HKEY
hKey, // 要查詢鍵的控制程式碼
LPCTSTR lpSubKey,
// 要查詢子鍵的名字
LPTSTR lpValue, // 返回字串的快取
PLONG lpcbValue // 接收返回字串的大小
);



引數





hKey

當前開啟的鍵或下列已確定保留控制程式碼值:

HKEY_CLASSES_
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
:
HKEY_PERFORMANCE_DATA
Windows 95和: 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標記的函式獲得錯誤的普通描述資訊。



注意



能被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。



參見



, , , , , , , ,


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991330/,如需轉載,請註明出處,否則將追究法律責任。

相關文章