SHGetValue レジストリ値の取得

Cの宣言:

DWORD SHGetValue(
	HKEY hKey,
	LPCTSTR SubKeyName,
	LPCTSTR ValueName,
	LPDWORD ValueType,
	LPVOID Value,
	LPDWORD ValueSize);

説明:

hKeyで指定されたレジストリの、SubKeyNameで指定されたサブキーにある、ValueNameで指定されたレジストリ値を取得する。

引数の意味は以下の通り。
hKey レジストリキーのハンドル。
SubKeyName サブキーの名前。
ValueName 取得するレジストリ値の名前。
ValueType 取得結果のレジストリ値のタイプ。
Value 取得結果のレジストリ値。
ValueSize Valueのサイズ。関数の実行後、Valueに設定されたデータのサイズが返される。

戻り値は関数の実行結果のエラーコードである。

Cのサンプル:

SHGetValueを使用して、HKEY_CURRENT_USERの"Software\masapico\test"というキーにある"abc"という名前のレジストリ値を取得し、結果を表示する。
void GetValue(void)
{
	HKEY hKey;
	DWORD ValueType;
	DWORD ValueSize;
	char Value[1000];

	/* レジストリキーのオープン */
	RegOpenKeyEx(
		HKEY_CURRENT_USER,
		"Software\\masapico",
		0,
		KEY_ALL_ACCESS,
		&hKey);

	ValueSize = 1000;

	/* レジストリ値の取得 */
	SHGetValue(
		hKey,
		"test",
		"abc",
		&ValueType,
		Value,
		&ValueSize);

	/* 結果の表示 */
	if(ValueType == REG_SZ) printf("%s\n", Value);
	else printf("...\n");

	/* 終了 */
	RegCloseKey(hKey);
	
}
(original text:1999/09/05 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。