指定されたレジストリキーをオープンします。この関数は指定されたレジストリキーが存在しない場合はキーを作成しません。新しいキーを作成してオープンする場合には RegCreateKeyEx 関数を使います。
LONG RegOpenKeyExA(
    HKEY   hKey,       // キーのハンドル
    PCTSTR pSubKey,    // オープンするサブキーの名前
    DWORD  ulOptions,  // 予約(0を指定)
    REGSAM samDesired, // セキュリティアクセスマスク
    PHKEY  phkResult   // ハンドルを格納する変数のアドレス
);
ADVAPI32.DLL
現在オープンされているキーのハンドルを指定します。
次の定義済みキーを指定することもできます。
| 値 | 定義済みキー | 
|---|---|
| 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 | 
オープンするサブキーの名前を表す文字列のアドレスを指定します。空の文字列("")のアドレスまたは 0 (NULL) を指定した場合には、 hKey パラメータで指定したキーの新しいハンドルをオープンします。
予約されています。 0 を指定しなければなりません。
オープンするキーのハンドルのセキュリティアクセス権を示すアクセスマスクを指定します。以下の値の組み合わせで指定します。
| 値 | 意味 | 
|---|---|
| 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 アクセスの組み合わせです。 | 
作成またはオープンされたキーのハンドルを格納するための変数のアドレスを指定します。
この変数に返されたハンドルが必要なくなったら、 RegCloseKey 関数を呼び出してハンドルをクローズしなくてはいけません。
成功すると 0 (ERROR_SUCCESS) が返ります。
失敗すると 0 以外のエラーコードが返ります。このエラーコードと FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を呼び出すことで、エラーメッセージを取得できます。
Windows 95 以降 / Windows NT 3.1 以降