From aa7bd0b1b7c81c61dad0fdc22f25a613eec7df5a Mon Sep 17 00:00:00 2001 From: Ziliang Guo Date: Fri, 12 Dec 2014 22:07:29 +0000 Subject: [PATCH] [DESK.CPL] Modify font enumeration code to deal with failure to read the registry key. Also change the registry key being queried to match the one used on Windows. Patch by Ricardo Hanke. CORE-8203 svn path=/trunk/; revision=65621 --- reactos/dll/cpl/desk/general.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/reactos/dll/cpl/desk/general.c b/reactos/dll/cpl/desk/general.c index 7ec2a9620c2..0858c16f974 100644 --- a/reactos/dll/cpl/desk/general.c +++ b/reactos/dll/cpl/desk/general.c @@ -26,8 +26,21 @@ InitFontSizeList(HWND hWnd) { if (SetupFindFirstLine(hInf, _T("Font Sizes"), NULL, &Context)) { - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\FontDPI"), + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts"), 0, KEY_READ, &hKey) == ERROR_SUCCESS) + { + dwSize = MAX_PATH; + dwType = REG_DWORD; + + if (!RegQueryValueEx(hKey, _T("LogPixels"), NULL, + &dwType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS) + { + dwValue = 0; + } + + RegCloseKey(hKey); + } + for (;;) { TCHAR Buffer[LINE_LEN]; @@ -41,23 +54,17 @@ InitFontSizeList(HWND hWnd) if (i != CB_ERR) SendMessage(hFontSize, CB_SETITEMDATA, (WPARAM)i, (LPARAM)ci); - dwSize = MAX_PATH; - dwType = REG_DWORD; - - if (RegQueryValueEx(hKey, _T("LogPixels"), NULL, - &dwType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS) + if ((int)dwValue == ci) { - if ((int)dwValue == ci) - { - SendMessage(hFontSize, CB_SETCURSEL, (WPARAM)i, 0); - SetWindowText(GetDlgItem(hWnd, IDC_FONTSIZE_CUSTOM), Desc); - } + SendMessage(hFontSize, CB_SETCURSEL, (WPARAM)i, 0); + SetWindowText(GetDlgItem(hWnd, IDC_FONTSIZE_CUSTOM), Desc); } + else + SendMessage(hFontSize, CB_SETCURSEL, 0, 0); } if (!SetupFindNextLine(&Context, &Context)) { - RegCloseKey(hKey); break; } }