[PATCH 6/6] user32: Change IsProcessDPIAware() to always return TRUE.

Huw Davies huw at codeweavers.com
Tue May 2 05:47:38 CDT 2017


This mimics Windows' behaviour when the 'Use Windows XP style DPI
scaling' box is ticked.  Since we don't have a DPI scaler, this makes
most sense.

Signed-off-by: Huw Davies <huw at codeweavers.com>
---
 dlls/user32/sysparams.c       |  9 ++++-----
 dlls/user32/tests/sysparams.c | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index 35565f10b3..bec4d66edd 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -2910,10 +2910,9 @@ BOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName, DWORD iModeNum,
 /***********************************************************************
  *              SetProcessDPIAware   (USER32.@)
  */
-BOOL WINAPI SetProcessDPIAware( VOID )
+BOOL WINAPI SetProcessDPIAware(void)
 {
-    FIXME( "stub!\n");
-
+    TRACE("\n");
     return TRUE;
 }
 
@@ -2922,8 +2921,8 @@ BOOL WINAPI SetProcessDPIAware( VOID )
  */
 BOOL WINAPI IsProcessDPIAware(void)
 {
-    FIXME( "stub!\n");
-    return FALSE;
+    TRACE("returning TRUE\n");
+    return TRUE;
 }
 
 /**********************************************************************
diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c
index 5a95fa4db6..a668878e26 100644
--- a/dlls/user32/tests/sysparams.c
+++ b/dlls/user32/tests/sysparams.c
@@ -39,6 +39,8 @@
 #endif
 
 static LONG (WINAPI *pChangeDisplaySettingsExA)(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID);
+static BOOL (WINAPI *pIsProcessDPIAware)(void);
+static BOOL (WINAPI *pSetProcessDPIAware)(void);
 
 static BOOL strict;
 static int dpi, real_dpi;
@@ -2958,6 +2960,30 @@ static void test_GetSysColorBrush(void)
         win_skip("COLOR_MENUBAR unsupported\n");
 }
 
+static void test_dpi_aware(void)
+{
+    BOOL ret, dpi_scaling = (dpi != real_dpi);
+    int size;
+
+    if (!pIsProcessDPIAware)
+    {
+        win_skip("IsProcessDPIAware not available\n");
+        return;
+    }
+
+    ret = pIsProcessDPIAware();
+    ok(ret == !dpi_scaling, "got %d, dpi %d, real_dpi %d\n", dpi, real_dpi);
+
+    ret = pSetProcessDPIAware();
+    ok(ret, "got %d\n", ret);
+
+    ret = pIsProcessDPIAware();
+    ok(ret, "got %d\n", ret);
+
+    dpi = real_dpi;
+    test_GetSystemMetrics();
+}
+
 START_TEST(sysparams)
 {
     int argc;
@@ -2969,7 +2995,9 @@ START_TEST(sysparams)
     HANDLE hInstance, hdll;
 
     hdll = GetModuleHandleA("user32.dll");
-    pChangeDisplaySettingsExA=(void*)GetProcAddress(hdll, "ChangeDisplaySettingsExA");
+    pChangeDisplaySettingsExA = (void*)GetProcAddress(hdll, "ChangeDisplaySettingsExA");
+    pIsProcessDPIAware = (void*)GetProcAddress(hdll, "IsProcessDPIAware");
+    pSetProcessDPIAware = (void*)GetProcAddress(hdll, "SetProcessDPIAware");
 
     hInstance = GetModuleHandleA( NULL );
     hdc = GetDC(0);
@@ -3020,4 +3048,5 @@ START_TEST(sysparams)
     }
     ReleaseDC( 0, hdc);
 
+    test_dpi_aware();
 }
-- 
2.12.0




More information about the wine-patches mailing list