RegGetValueW

指定したレジストリ値の型とデータを取得する。(Unicode)

RegGetValueW hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData

hkey : [intptr] 開かれているレジストリキーへのハンドル。キーは KEY_QUERY_VALUE アクセス権で開かれている必要がある。詳細はレジストリキーのセキュリティとアクセス権を参照のこと。
lpSubKey : [wstr] *hkey* パラメータで指定されるキーに対する相対的なレジストリキーのパス。このサブキーからレジストリ値が取得される。パスは大文字小文字を区別しない。このパラメータが **NULL** または空文字列 "" の場合、値は *hkey* で指定されたキー自体から読み取られる。
lpValue : [wstr] レジストリ値の名前。このパラメータが **NULL** または空文字列 "" の場合、関数はキーの無名値または既定値(存在する場合)の型とデータを取得する。キーは自動的には無名値または既定値を持たず、無名値は任意の型にできる。詳細は [Registry Element Size Limits](/windows/win32/sysinfo/registry-element-size-limits) を参照のこと。
dwFlags : [int] 
pdwType : [var] 指定した値に格納されているデータの型を示すコードを受け取る変数へのポインタ。型コードの一覧についてはレジストリ値の型を参照のこと。型が不要な場合、このパラメータは NULL にできる。
pvData : [intptr] 値のデータを受け取るバッファへのポインタ。データが不要な場合、このパラメータは NULL にできる。データが文字列の場合、関数は終端 null 文字の有無を確認する。存在しない場合、バッファが余分な文字を収容するのに十分大きければ、文字列は null で終端されて格納される。そうでなければ関数は失敗して ERROR_MORE_DATA を返す。
pcbData : [var] pvData パラメータが指すバッファのサイズ(バイト単位)を指定する変数へのポインタ。関数が復帰するとき、この変数は pvData にコピーされたデータのサイズを格納する。

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

解説

指定したレジストリ値の型とデータを取得する。(Unicode)

[戻り値]
関数が成功した場合、戻り値は ERROR_SUCCESS となる。関数が失敗した場合、戻り値はシステムエラーコードとなる。pvData
バッファが値を受け取るには小さすぎる場合、関数は ERROR_MORE_DATA を返す。lpValue
レジストリ値が存在しない場合、関数は ERROR_FILE_NOT_FOUND を返す。dwFlags に
RRF_SUBKEY_WOW6464KEY と RRF_SUBKEY_WOW6432KEY の両方の組み合わせが指定されている場合、関数は
ERROR_INVALID_PARAMETER を返す。

[備考]
通常、アプリケーションは RegEnumValue を呼び出して値名を決定し、次に RegGetValue
を呼び出して名前に対応するデータを取得する。データが REG_SZ、REG_MULTI_SZ、または REG_EXPAND_SZ
型で、この関数の ANSI 版が(明示的に RegGetValueA を呼び出すか、Windows.h のインクルード前に UNICODE
を定義しないことで)使用されている場合、関数は格納されている Unicode 文字列を ANSI 文字列に変換してから pvData
が指すバッファにコピーする。hkey に HKEY_PERFORMANCE_DATA
ハンドルと指定されたオブジェクトの値文字列を指定してこの関数を呼び出した場合、返されるデータ構造には要求していないオブジェクトが含まれることがあるが、これは正常な動作である。要求したオブジェクトを探すために返されたデータ構造を走査することを常に想定すること。特定のレジストリキーへのアクセスはリダイレクトされる点に注意のこと。詳細はレジストリ仮想化およびレジストリ内の
32 ビットおよび 64
ビットアプリケーションデータを参照のこと。この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を
0x0600 以降に定義する。詳細は Windows ヘッダの使用を参照のこと。
> [!NOTE] > winreg.h ヘッダは RegGetValue をエイリアスとして定義しており、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