SHEnumKeyEx レジストリキーの列挙

Cの宣言:

DWORD SHEnumKeyEx(
	HKEY hKey,
	DWORD Index,
	LPTSTR KeyName,
	LPDWORD KeyNameSize);

説明:

hKeyで指定されたレジストリキーのIndex番目のサブキーの名前を取得する。

引数の意味は以下の通り。
hKey 列挙するレジストリキー。
Index 取得するサブキーのインデックス。
KeyName 取得結果のサブキーの名前。
KeyNameSize KeyNameのサイズ。関数の実行後、KeyNameに設定されたデータのサイズが返される。

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

Cのサンプル:

SHEnumKeyExを使用してHKEY_CURRENT_USERの"Software\masapico"というキーにあるサブキーを列挙し、結果を表示する。
void EnumKey(void)
{
	HKEY hKey;
	char KeyName[1000];
	DWORD KeyNameSize;
	DWORD Index;
	LONG lResult;

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

	/* サブキーの列挙 */
	for(Index = 0;; Index++) {
		KeyNameSize = 1000;

		lResult = SHEnumKeyEx(
			hKey,
			Index,
			KeyName,
			&KeyNameSize);

		if(lResult != ERROR_SUCCESS) break;

		printf("%s\n", KeyName);
	}

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

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