RegQueryValueW

指定したレジストリキーの既定値または無名値に関連付けられたデータを取得する。データは null で終端された文字列でなければならない。(Unicode)

RegQueryValueW hKey, lpSubKey, lpData, lpcbData

hKey : [intptr] 開かれているレジストリキーへのハンドル。キーは KEY_QUERY_VALUE アクセス権で開かれている必要がある。詳細はレジストリキーのセキュリティとアクセス権を参照のこと。
lpSubKey : [wstr] 既定値を取得する hKey パラメータのサブキーの名前。キー名は大文字小文字を区別しない。このパラメータが NULL または空文字列を指す場合、関数は hKey で識別されるキーの既定値を取得する。詳細はレジストリ要素サイズ制限を参照のこと。
lpData : [wstr] 指定したキーの既定値を受け取るバッファへのポインタ。
lpcbData : [var] lpValue パラメータが指すバッファのサイズ(バイト単位)を指定する変数へのポインタ。関数が復帰するとき、この変数は lpValue にコピーされたデータのサイズ(終端 null 文字を含む)を格納する。

(プラグイン / モジュール : advapi32.dll)

解説

指定したレジストリキーの既定値または無名値に関連付けられたデータを取得する。データは null
で終端された文字列でなければならない。(Unicode)

[戻り値]
関数が成功した場合、戻り値は ERROR_SUCCESS となる。関数が失敗した場合、戻り値はシステムエラーコードとなる。lpValue
バッファが値を受け取るには小さすぎる場合、関数は ERROR_MORE_DATA を返す。

[備考]
この関数の ANSI 版が(明示的に RegQueryValueA を呼び出すか、Windows.h のインクルード前に UNICODE
を定義しないことで)使用されている場合、関数は格納されている Unicode 文字列を ANSI 文字列に変換してから lpValue
パラメータで指定したバッファにコピーする。データが REG_SZ、REG_MULTI_SZ、または REG_EXPAND_SZ
型の場合、文字列は適切な終端 null 文字で格納されていない可能性がある。したがって、関数が ERROR_SUCCESS
を返しても、アプリケーションは文字列を使用する前に文字列が正しく終端されていることを確認すべきである。そうでないと、バッファを上書きする可能性がある。(REG_MULTI_SZ
文字列は 2 つの終端 null
文字を持つべきである点に注意のこと。)特定のレジストリキーへのアクセスはリダイレクトされる点に注意のこと。詳細はレジストリ仮想化およびレジストリ内の
32 ビットおよび 64 ビットアプリケーションデータを参照のこと。
> [!NOTE] > winreg.h ヘッダは RegQueryValue をエイリアスとして定義しており、UNICODE
プリプロセッサ定数の定義に基づいて ANSI または Unicode
版を自動的に選択する。エンコーディングに中立なエイリアスをエンコーディング中立でないコードと混在させると、コンパイル時または実行時エラーとなる可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs