user32/tests: Try to read the dpi from the user key first.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2017-04-27 11:02:37 +01:00 committed by Alexandre Julliard
parent 5159279f28
commit 3845b0bb73
1 changed files with 22 additions and 5 deletions

View File

@ -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,