Author: zguo
Date: Fri Dec 12 22:07:29 2014
New Revision: 65621

URL: http://svn.reactos.org/svn/reactos?rev=65621&view=rev
Log:
[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

Modified:
    trunk/reactos/dll/cpl/desk/general.c

Modified: trunk/reactos/dll/cpl/desk/general.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/general.c?rev=65621&r1=65620&r2=65621&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/general.c        [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/desk/general.c        [iso-8859-1] Fri Dec 12 
22:07:29 2014
@@ -26,8 +26,21 @@
     {
         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 @@
                     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;
                 }
             }


Reply via email to