因需要,要判断当前系统是否隐藏了文件扩展名,所以写了下面的函数,在XP SP2, embedded xp, WINC5.0 下验证过
/// 获取是否隐藏文件扩展名 bool C_FileDialog::GetFileExtendNameHideState() { HKEY dwROOTKEY; #ifdef _WIN32_WCE dwROOTKEY= HKEY_LOCAL_MACHINE; const TCHAR szRegRootKey[] = _T("Explorer"); const TCHAR szRegKeyName[] = _T("ShowExt"); #else dwROOTKEY= HKEY_CURRENT_USER; const TCHAR szRegRootKey[] = _T("Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced"); const TCHAR szRegKeyName[] =_T("HideFileExt"); #endif HKEY hKey; DWORD dwLen=sizeof(DWORD), dwVal=0, dwType=REG_DWORD; if(ERROR_SUCCESS != RegOpenKeyEx(dwROOTKEY,szRegRootKey,0,KEY_ALL_ACCESS,&hKey)) { return false; } if(ERROR_SUCCESS != RegQueryValueEx(hKey,szRegKeyName,NULL,&dwType, (LPBYTE)&dwVal,&dwLen) ) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); #ifdef _WINDOWS_ return (dwVal==1) ; #else return (dwVal==0) ; #endif }