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…
==============================================================================
--- 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;
}
}