Win32API: RegCreateKeyEx

指定したレジストリキーを作成します。キーが既に存在しているときはオープンします。


定義
Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" _
         (hKey As HKEY, _
          lpSubKey As String, _
          Reserved As DWord, _
          lpClass As String, _
          dwOptions As DWord, _
          samDesired As Long, _
    ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _
    ByRef phkResult As HKEY, _
          lpdwDisposition As DWordPtr) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル説明
HKEY_CLASSES_ROOT拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。
HKEY_CURRENT_USER現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。
HKEY_LOCAL_MACHINEコンピュータ固有の情報などが格納されています。
HKEY_USERSすべてのユーザーに関する情報などが格納されています。

lpSubKey
hKey パラメータで指定したキーを親とするサブキーの名前が入った文字列を指定します。

Reserved
予約されています。0 を指定して下さい。

lpClass
作成するキーのクラス(オブジェクトの種類)の名前が格納された文字列を指定します。キーが既に存在しているときは無視されます。不要なときは、NULL を指定することができます。

dwOptions
作成するキーに関する特殊オプションを、以下の定数から指定します。
定数説明
REG_OPTION_NON_VOLATILE不揮発性のキーを作成します。キーはファイルに保存され、システムを再起動しても情報は失われません(デフォルト)。
REG_OPTION_VOLATILE揮発性のキーを作成します。キーはメモリに保存され、システムを再起動すると、情報が失われます(WindowsNT系OSのみ)。
REG_OPTION_BACKUP_RESTORE呼び出し側のスレッドが SE_BACKUP_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_READ アクセスでオープンされます。呼び出し側のスレッドが SE_RESTORE_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_WRITE アクセスでオープンされます。両方の特権を持っている場合、両方の特権が組み合わさります。この値を指定すると、samDesired パラメータが無視されます(WindowsNT系OSのみ)。

samDesired
セキュリティ マスクを、以下の定数を組み合わせて指定します。
定数説明
KEY_ALL_ACCESSKEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、KEY_CREATE_SUB_KEY、KEY_CREATE_LINK、KEY_SET_VALUE の組み合わせです。
KEY_CREATE_LINKシンボリックリンクの作成を許可します。
KEY_CREATE_SUB_KEYサブキーの作成を許可します。
KEY_ENUMERATE_SUB_KEYSサブキーの列挙を許可します。
KEY_EXECUTE
、または KEY_READ
KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY の組み合わせです。読み取りアクセスを許可します。
KEY_NOTIFY変更の通知を許可します。
KEY_QUERY_VALUEサブキーデータの問い合わせを許可します。
KEY_SET_VALUEサブキーデータの設定を許可します。
KEY_WRITEKEY_SET_VALUE、KEY_CREATE_SUB_KEY の組み合わせです。

lpSecurityAttributes (ポインタ参照)
SECURITY_ATTRIBUTES 型の構造体変数を指定すると、ハンドルの子プロセスへの継承許可を設定することができます。NULL を指定するとハンドルは継承されません。

phkResult (ポインタ参照)
32 ビット整数型変数へのポインタを指定します。この変数に作成、またはオープンしたキーのハンドルが格納されます。

lpdwDisposition
32 ビット整数型変数へのポインタを指定します。この変数には、関数の処理結果が格納されます。処理結果は以下の定数のいずれかです。不要なときは、NULL を指定することができます。
定数説明
REG_CREATED_NEW_KEYキーが存在していなかったため、新たに作成しました。
REG_OPENED_EXISTING_KEYキーが既に存在していたため、オープンしました。

戻り値

関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。

解説

phkResult パラメータに格納されたキーが不要になったら、RegCloseKey関数を使用してキーを閉じて下さい。

環境情報

インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll


RegCloseKey関数RegDeleteKey関数RegDeleteValue関数RegOpenKeyEx関数RegQueryValueEx関数RegSetValueEx関数