RegEnumValueW

指定されたオープンレジストリキーの値を列挙する。呼び出しごとに 1 つのインデックス付きの値名とデータブロックをキーからコピーする。(Unicode)

RegEnumValueW hKey, dwIndex, lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData

hKey : [intptr] オープン中のレジストリキーへのハンドル。KEY_QUERY_VALUE アクセス権で開かれている必要がある。
dwIndex : [int] 取得する値のインデックス。最初の呼び出しでは 0 で、以降インクリメントする。値は順序付けされていないので新しい値は任意のインデックスを持つ。
lpValueName : [wstr] 値の名前(NULL 終端文字列)を受け取るバッファへのポインタ。終端 NULL を含められる大きさが必要。
lpcchValueName : [var] lpValueName バッファのサイズ(文字単位)を指定する変数へのポインタ。戻り時、終端 NULL を含まない格納文字数。レジストリ値名は 32,767 バイトに制限されている。
lpReserved : [var] このパラメータは予約されており NULL でなければならない。
lpType : [var] 指定された値に格納されているデータタイプを示すコードを受け取る変数へのポインタ。タイプコードが不要なら NULL を指定可能。
lpData : [var] 値エントリのデータを受け取るバッファへのポインタ。データが不要なら NULL 可。
lpcbData : [var] lpData が指すバッファのサイズ(バイト単位)を指定する変数へのポインタ。戻り時、バッファに格納されたバイト数を受け取る。lpData が NULL の場合のみ NULL 可。REG_SZ、REG_MULTI_SZ、REG_EXPAND_SZ の場合、終端 NULL 分が含まれる。バッファが小さすぎる場合 ERROR_MORE_DATA が返り、必要サイズが格納される。

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

解説

指定されたオープンレジストリキーの値を列挙する。呼び出しごとに 1
つのインデックス付きの値名とデータブロックをキーからコピーする。(Unicode)

[戻り値]
関数が成功した場合、戻り値は ERROR_SUCCESS。失敗した場合はシステムエラーコード。値がもうない場合は
ERROR_NO_MORE_ITEMS。lpData バッファが小さすぎる場合は ERROR_MORE_DATA。

[備考]
値を列挙するには最初 dwIndex を 0 にして呼び、ERROR_NO_MORE_ITEMS
が返るまでインクリメントしながら呼び出す。列挙中に照会中のキーを変更するレジストリ関数を呼ばないこと。REG_SZ、REG_MULTI_SZ、REG_EXPAND_SZ
の場合、文字列が正しく NULL 終端されていない可能性があるので、使用前に確認する。名前とデータの最大サイズは
RegQueryInfoKey で取得できる。

情報

プラグイン / モジュール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