////////////////////////////////////////////////////////////////////////////////////////////////////////////SpecialSample2 //レジストリのサブキーのリスト pszRegPath配下のレジストリ構造をscArrayへ ////////////////////////////////////////////////////////////////////////////////////////////////////////////SpecialSample2 void CShareDlg::ListSubKey (LPCTSTR pszRegPath, CStringArray& scArray, HKEY hKey) { DWORD dwSubKeys = 0; DWORD i; HKEY hQKey = NULL; TCHAR szStr[200]; DWORD dwSubKeyNameLen; FILETIME LastFileTime; CString csRegPath; //レジストリオープン RegOpenKeyEx(hKey, pszRegPath, 0L, KEY_READ, &hQKey); if(hQKey){ for( i=0 ; ; i++){ dwSubKeyNameLen = sizeof(szStr); if(RegEnumKeyEx( hQKey, i, szStr, &dwSubKeyNameLen, NULL, NULL, NULL, &LastFileTime)){ break; } csRegPath = pszRegPath; if(csRegPath.Right(1)=='\\') csRegPath = csRegPath.Left(csRegPath.GetLength()-1); csRegPath = csRegPath + "\\" + szStr; scArray.Add( csRegPath ); ListSubKey(csRegPath, scArray, hKey); } RegCloseKey (hQKey); } }