レジストリのサブ・キーを列挙する



//レジストリのサブ・キーを列挙する
void CEnumRegKeyDlg::OnButton1() 
{
	HKEY RegKey;
	char szObject[256];
	DWORD dwBufSize;
	DWORD dwIndex1;
	CString strBuf, strTmp;

	//レジストリのキーを開く
	LONG Result = RegOpenKeyEx(HKEY_CURRENT_USER,
		"Software\\Microsoft\\Internet Explorer",
		0 ,KEY_READ , &RegKey);

	if( Result == ERROR_SUCCESS){

		dwBufSize = MAX_PATH;
		dwIndex1 = 0;

		//サブ・キーを列挙する
		while ( RegEnumKeyEx(RegKey, dwIndex1++, szObject,
              &dwBufSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS){

			if(strBuf.IsEmpty()){
				strBuf = szObject;
			}
			else{
				strTmp = szObject;
				strBuf += "\n" + strTmp;
			}
			dwBufSize = MAX_PATH;
		}

		//レジストリのキーを閉じる
		RegCloseKey(HKEY_CURRENT_USER);

		//取得したエントリを表示する
		AfxMessageBox(strBuf);
	}
}