LONG SHRegSetUSValue( LPCSTR SubKeyName, LPCSTR ValueName, DWORD ValueType, LPVOID Value, DWORD ValueSize, DWORD Flags);
引数の意味は以下の通り。
SubKeyName | ユーザ指定キーの名前。 |
ValueName | 設定するレジストリ値の名前。 |
ValueType | 設定するレジストリ値のタイプ。REG_SZでなければならない。 |
Value | 設定するレジストリ値。NULLで終わる文字列でなければならない。 |
ValueSize | 設定するレジストリ値のサイズ。終端のNULLを含まない文字列のバイト長でなければならない。 |
Flags | HKEY_CURRENT_USERとHKEY_LOCAL_MACHINEのどちらに設定するかを表すフラグ。後述の表を参照。 |
Flgasには以下のフラグの組み合わせを指定可能である。
SHREGSET_HKCU | HKEY_CURRENT_USERにレジストリ値を設定する。 |
SHREGSET_HKLM | HKEY_LOCAL_MACHINEにレジストリ値を設定する。 |
SHREGSET_DEFAULT | HKEY_CURRENT_USERおよびHKEY_LOCAL_MACHINEの両方にレジストリ値を設定する。 |
戻り値は、関数の実行結果を表すエラーコードである。
void SetUSValue(void) { char *RegValue1 = "world"; char *RegValue2 = "bar"; /* HKEY_CURRENT_USERおよびHKEY_LOCAL_MACHINEのSoftware\\masapicoというサブキーに、 値が文字列"world"で、名前が"hello"である新規レジストリ値を作成する */ SHRegSetUSValue( "Software\\masapico", "hello", REG_SZ, RegValue1, lstrlen(RegValue1) + 1, SHREGSET_DEFAULT); /* HKEY_LOCAL_MACHINEのSoftware\\masapicoというサブキーに、 値が文字列"bar"で、名前が"foo"である新規レジストリ値を作成する */ SHRegSetUSValue( "Software\\masapico", "foo", REG_SZ, RegValue2, lstrlen(RegValue2) + 1, SHREGSET_HKLM); }