レジストリキーの下に指定された値のデータと型を設定します。
LONG RegSetValueExA( HKEY hKey, // キーのハンドル PCTSTR pValueName, // 値の名前 DWORD Reserved, // 予約(0を指定) DWORD dwType, // データのタイプ CONST BYTE *pData, // データバッファのアドレス DWORD cbData // データサイズ );
ADVAPI32.DLL
現在オープンされているキーのハンドルを指定します。このハンドルは KEY_SET_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 |
値の名前を表す文字列のアドレスを指定します。キーに指定された名前の値が存在しない場合は、この名前の値を追加します。
空の文字列("")のアドレスまたは 0 (NULL) を指定した場合には、キーの名前なしの値またはデフォルトの値を設定します。
Windows 95/98/Me: Windows 95 では、キーのデフォルトの値のデータ型は常に REG_SZ であるので、デフォルトの値では dwType パラメータには REG_SZ を指定しなければなりません。 Windows 98/Me では、デフォルトの値の型は初期状態では REG_SZ ですが、 RegSetValueEx 関数にはどのデータ型でも指定することができます。
Windows NT/2000/XP: 初期状態では名前なしの値またはデフォルトの値を持ちません。名前なしの値にはどのデータ型でも指定することができます。
予約されています。 0 を指定しなければなりません。
格納する値のデータの型を指定します。
格納するデータが格納されたバッファのアドレスを指定します。
pData パラメータが示す情報のサイズを、バイト単位で指定します。データの種類が REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ のいずれかのときは、終端ヌル文字のサイズも含めなければなりません。
成功すると 0 (ERROR_SUCCESS) が返ります。
失敗すると 0 以外のエラーコードが返ります。このエラーコードと FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を呼び出すことで、エラーメッセージを取得できます。
値のデータの長さは、利用可能なメモリによって制限されます。 2048 バイトを超えるような長い値のデータの場合は、データはファイルとして格納し、そのファイル名をレジストリに格納するようにすべきです。アイコンやビットマップ、実行可能ファイルなどのアプリケーションの要素は、ファイルとして格納されるべきで、レジストリにおくべきではありません。
文字列データはレジストリ中に Unicode 文字列の形で格納されます。アプリケーションが dwType パラメータに REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ のいずれかを指定して ANSI 版の関数(RegSetValueExA 関数)を呼び出すと、 pData パラメータが指し示す ANSI 文字列が Unicode 文字列に変換されてからレジストリに格納されます。
Windows 95/98/Me: レジストリの1つの値のサイズは 16,300 バイトに制限されます。このサイズには、データサイズ(cbData パラメータ)および値の名前(pValueName パラメータ)についての情報のサイズも含まれます。また、1つのキーが持つすべての値の総サイズは 64 キロバイトに制限されます。
Windows 95 以降 / Windows NT 3.1 以降