Huw Davies : user32/tests: Try to read the dpi from the user key first.
Alexandre Julliard
julliard at winehq.org
Thu Apr 27 15:49:11 CDT 2017
Module: wine
Branch: master
Commit: 3845b0bb73f26146d03632702bec21ac6e808c4d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3845b0bb73f26146d03632702bec21ac6e808c4d
Author: Huw Davies <huw at codeweavers.com>
Date: Thu Apr 27 11:02:37 2017 +0100
user32/tests: Try to read the dpi from the user key first.
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/tests/sysparams.c | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c
index 96b1581..d879036 100644
--- a/dlls/user32/tests/sysparams.c
+++ b/dlls/user32/tests/sysparams.c
@@ -165,17 +165,34 @@ static int last_bpp;
static BOOL displaychange_ok = FALSE, displaychange_test_active = FALSE;
static HANDLE displaychange_sem = 0;
-static int get_real_dpi(void)
+static BOOL get_reg_dword(HKEY base, const char *key_name, const char *value_name, DWORD *value)
{
HKEY key;
- DWORD value = USER_DEFAULT_SCREEN_DPI, size = sizeof(value);
+ DWORD type, data, size = sizeof(data);
+ BOOL ret = FALSE;
- if (!RegOpenKeyA(HKEY_CURRENT_USER, "Control Panel\\Desktop", &key))
+ if (RegOpenKeyA(base, key_name, &key) == ERROR_SUCCESS)
{
- RegQueryValueExA(key, "LogPixels", NULL, NULL, (BYTE *)&value, &size);
+ if (RegQueryValueExA(key, value_name, NULL, &type, (void *)&data, &size) == ERROR_SUCCESS &&
+ type == REG_DWORD)
+ {
+ *value = data;
+ ret = TRUE;
+ }
RegCloseKey(key);
}
- return value;
+ return ret;
+}
+
+static DWORD get_real_dpi(void)
+{
+ DWORD dpi;
+
+ if (get_reg_dword(HKEY_CURRENT_USER, "Control Panel\\Desktop", "LogPixels", &dpi))
+ return dpi;
+ if (get_reg_dword(HKEY_CURRENT_CONFIG, "Software\\Fonts", "LogPixels", &dpi))
+ return dpi;
+ return USER_DEFAULT_SCREEN_DPI;
}
static LRESULT CALLBACK SysParamsTestWndProc( HWND hWnd, UINT msg, WPARAM wParam,
More information about the wine-cvs
mailing list