RegQueryValueEx(A)

レジストリキーから、指定した値のデータを取得します。

LONG RegQueryValueExA(
    HKEY   hKey,        // キーのハンドル
    PCTSTR pValueName,  // 値の名前
    PDWORD pReserved,   // 予約(NULLを指定)
    PDWORD pType,       // データタイプを格納する変数
    PBYTE  pData,       // データを格納するバッファ
    PDWORD pcbData      // バッファサイズを入れた変数
);

ADVAPI32.DLL

引数

hKey

現在オープンされているキーのハンドルを指定します。このハンドルは KEY_QUERY_VALUE アクセスを持っていなければなりません。

次の定義済みキーを指定することもできます。

定義済みキー
0x80000000 HKEY_CLASSES_ROOT
0x80000001 HKEY_CURRENT_USER
0x80000002 HKEY_LOCAL_MACHINE
0x80000003 HKEY_USERS
0x80000004 Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
0x80000005 HKEY_CURRENT_CONFIG
0x80000006 Windows 95/98/Me: HKEY_DYN_DATA
0x80000050 Windows XP: HKEY_PERFORMANCE_TEXT
0x80000060 Windows XP: HKEY_PERFORMANCE_NLSTEXT
pValueName

値の名前を表す文字列のアドレスを指定します。

このパラメータに空の文字列("")のアドレスまたは 0 (NULL) を指定すると、名前なしの値またはデフォルトの値がある場合にはそれが取得されます。

Windows 95/98/Me: それぞれのキーはデータを持たないデフォルトの値を持ちます。 Windows 95 では、キーのデフォルトの値のデータ型は常に REG_SZ であるので、デフォルトの値では dwType パラメータには REG_SZ を指定しなければなりません。 Windows 98/Me では、デフォルトの値の型は初期状態では REG_SZ ですが、 RegSetValueEx 関数にはどのデータ型でも指定することができます。

Windows NT/2000/XP: 初期状態では名前なしの値またはデフォルトの値を持ちません。名前なしの値にはどのデータ型でも指定することができます。

pReserved

予約されています。 0 (NULL) を指定しなければなりません。

dwType

値のデータの型を格納するための変数のアドレスを指定します。関数が制御を返すと、値のデータの型を示す値が格納されます。値のデータの型についての情報が不要の場合は 0 (NULL) を指定することができます。

pData

値のデータを受け取るバッファのアドレスを指定します。値のデータが不要の場合は 0 (NULL) を指定することができます。

pcbData

pData パラメータで表されるバッファのバイト単位のサイズを格納した変数のアドレスを指定します。関数が制御を返すと、バッファに格納されたデータのバイト数が格納されます。データの型が REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ の場合、返されるサイズには終端ヌル文字の分のサイズが含まれます。

pData パラメータに 0 (NULL) を指定した場合は、このパラメータに 0 (NULL) を指定することができます。

バッファが小さすぎるときは、必要なバイト数が格納され、関数は戻り値 234 (ERROR_MORE_DATA) を返します。この場合は、 pData パラメータが指すバッファの内容は未定義です。

pData パラメータに 0 (NULL) を指定し、かつ、 pcbData パラメータに 0 (NULL) 以外を指定すると、この変数には必要なバイト数が格納され、関数は戻り値 0 (ERROR_SUCCESS) を返します。

戻り値

成功すると 0 (ERROR_SUCCESS) が返ります。

失敗すると 0 以外のエラーコードが返ります。このエラーコードと FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を呼び出すことで、エラーメッセージを取得できます。

対応情報

Windows 95 以降 / Windows NT 3.1 以降