<Return[R]><Top>

RegOpenKeyEx

Declare Function Api_RegOpenKeyEx& Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey&, ByVal lpSubKey$, ByVal ulOptions&, ByVal samDesired&, phkResult&)

Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

指定されたレジストリキーを開く。

パラメータ
hKey
    現在開いている親キーのハンドルを指定する。

    代わりに、あらかじめ定義されている次の予約済みハンドルのいずれかを指定することもできる。
    HKEY_CLASSES_ROOT
    HKEY_CURRENT_CONFIG
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS
    Windows NT/2000:HKEY_PERFORMANCE_DATA も指定できる。
    Windows 95/98:HKEY_DYN_DATA も指定できる。
lpSubKey
    開くべきサブキーの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    空の文字列へのポインタ、または NULL を指定した場合、この関数は、hKey パラメータで指定したキーの新しいハンドルを開く。

    この場合、この関数は以前に開いていたハンドルを閉じない。
ulOptions
    予約されている。0 を指定する。
samDesired
    キーで利用するべき希望のアクセス権を表す、アクセスマスクを指定する。次の値を組み合わせて指定する。

    値                                                 

意味                                                                                                                       

    KEY_CREATE_LINK

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

    KEY_CREATE_SUB_KEY

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

    KEY_ENUMERATE_SUB_KEYS

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

    KEY_EXECUTE

読み取りアクセスを許可する。

    KEY_NOTIFY

変更の通知(キーに変更が加えられたときに、そのことを通知するよう要求)を許可する。

    KEY_QUERY_VALUE

サブキーのデータを問い合わせることを許可する

    KEY_SET_VALUE

サブキーのデータを設定することを許可する。

    KEY_ALL_ACCESS

 

 

 

 

 

KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、

KEY_CREATE_SUB_KEY、KEY_CREATE_LINK、KEY_SET_VALUE の各アクセス権を組

み合わせ、さらに SYNCHRONIZE 以外の「standard access rights」(標準アクセス権)のす

べての権利を組み合わせたものである。
KEY_READ STANDARD_RIGHTS_READ、KEY_QUERY_VALUE、

KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY の各アクセス権の組み合わせである。

    KEY_WRITE

 

STANDARD_RIGHTS_WRITE、KEY_SET_VALUE、KEY_CREATE_SUB_KEY の各アクセ

ス権の組み合わせである。

phkResult
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、開くことに成功したサブキーのハンドルが格納される。

    このハンドルが必要なくなった段階で、RegCloseKey 関数を呼び出して閉じること。
 

戻り値
    関数が成功すると、ERROR_SUCCESS が返る。
    関数が失敗すると、Winerror.h ヘッダーファイル内で定義されている、0 以外のエラーコードが返る。

    FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を呼び出すと、エラーの一般的な説明を取得できる。

解説
    RegOpenKeyEx 関数は RegCreateKeyEx 関数とは異なり、指定されたキーがレジストリ内に存在しない場合でもそのキーを作成しない。
    Windows 95/98:レジストリのサブキー名、およびレジストリエントリ名の長さは、最大 255 文字。