Alexandre Julliard : user32: Implement GetDpiForWindow().
Alexandre Julliard
julliard at winehq.org
Thu Apr 19 16:54:19 CDT 2018
Module: wine
Branch: master
Commit: fb563978d815f74786bf25baa0bf4c4362595dd6
URL: https://source.winehq.org/git/wine.git/?a=commit;h=fb563978d815f74786bf25baa0bf4c4362595dd6
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Apr 19 10:47:18 2018 +0200
user32: Implement GetDpiForWindow().
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/sysparams.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index 8c5dd0a..715bf59 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -3313,8 +3313,21 @@ BOOL WINAPI GetDpiForMonitorInternal( HMONITOR monitor, UINT type, UINT *x, UINT
*/
UINT WINAPI GetDpiForWindow( HWND hwnd )
{
- FIXME( "stub: %p\n", hwnd );
- return GetDpiForSystem();
+ UINT dpi;
+
+ switch (GetAwarenessFromDpiAwarenessContext( GetWindowDpiAwarenessContext( hwnd )))
+ {
+ case DPI_AWARENESS_UNAWARE:
+ return USER_DEFAULT_SCREEN_DPI;
+ case DPI_AWARENESS_SYSTEM_AWARE:
+ return get_system_dpi();
+ case DPI_AWARENESS_PER_MONITOR_AWARE:
+ GetDpiForMonitorInternal( MonitorFromWindow( hwnd, MONITOR_DEFAULTTOPRIMARY ),
+ 0 /* MDT_EFFECTIVE_DPI */, &dpi, NULL );
+ return dpi;
+ default:
+ return 0;
+ }
}
/**********************************************************************
More information about the wine-cvs
mailing list