RegOpenKeyEx(A)

指定されたレジストリキーをオープンします。この関数は指定されたレジストリキーが存在しない場合はキーを作成しません。新しいキーを作成してオープンする場合には RegCreateKeyEx 関数を使います。

LONG RegOpenKeyExA(
    HKEY   hKey,       // キーのハンドル
    PCTSTR pSubKey,    // オープンするサブキーの名前
    DWORD  ulOptions,  // 予約(0を指定)
    REGSAM samDesired, // セキュリティアクセスマスク
    PHKEY  phkResult   // ハンドルを格納する変数のアドレス
);

ADVAPI32.DLL

引数

hKey

現在オープンされているキーのハンドルを指定します。

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

定義済みキー
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
pSubKey

オープンするサブキーの名前を表す文字列のアドレスを指定します。空の文字列("")のアドレスまたは 0 (NULL) を指定した場合には、 hKey パラメータで指定したキーの新しいハンドルをオープンします。

ulOptions

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

samDesired

オープンするキーのハンドルのセキュリティアクセス権を示すアクセスマスクを指定します。以下の値の組み合わせで指定します。

意味
0x0001 (KEY_QUERY_VALUE)

サブキーデータの問い合わせを許可します。

0x0002 (KEY_SET_VALUE)

サブキーデータの設定を許可します。

0x0004 (KEY_CREATE_SUB_KEY)

サブキーの作成を許可します。

0x0008 (KEY_ENUMERATE_SUB_KEYS)

サブキーの列挙を許可します。

0x0010 (KEY_NOTIFY)

変更の通知を許可します。

0x0020 (KEY_CREATE_LINK)

シンボリックリンクの作成を許可します。

0x0100 (KEY_WOW64_64KEY)

Windows XP: 64 ビットまたは 32 ビットアプリケーションが、 64 ビットキーをオープンできるようにします。

0x0200 (KEY_WOW64_32KEY)

Windows XP: 64 ビットまたは 32 ビットアプリケーションが、 32 ビットキーをオープンできるようにします。

0x20006 (KEY_WRITE)

STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY アクセスの組み合わせです。

0x20019 (KEY_READ, KEY_EXECUTE)

STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY アクセスの組み合わせです。

0x1F003F (KEY_ALL_ACCESS)

STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, KEY_SET_VALUE アクセスの組み合わせです。

phkResult

作成またはオープンされたキーのハンドルを格納するための変数のアドレスを指定します。

この変数に返されたハンドルが必要なくなったら、 RegCloseKey 関数を呼び出してハンドルをクローズしなくてはいけません。

戻り値

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

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

対応情報

Windows 95 以降 / Windows NT 3.1 以降