From a72434e945fcc9ad75bf795c514401ad01e4c5aa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 8 Apr 2015 07:20:28 +0200 Subject: [PATCH] (Win32) Set DPI Aware for Windows Vista and higher --- frontend/drivers/platform_win32.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 0e229b9b22..52843e6649 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -37,12 +37,31 @@ static void frontend_win32_init(void *data) { char os_version[PATH_MAX_LENGTH]; int major, minor; + typedef BOOL (WINAPI *isProcessDPIAwareProc)(); + typedef BOOL (WINAPI *setProcessDPIAwareProc)(); (void)data; frontend_win32_get_os(os_version, sizeof(os_version), &major, &minor); + isProcessDPIAwareProc isDPIAwareProc = (isProcessDPIAwareProc) + GetProcAddress(GetModuleHandle(TEXT("User32.dll")), "IsProcessDPIAware"); + setProcessDPIAwareProc setDPIAwareProc = (setProcessDPIAwareProc) + GetProcAddress(GetModuleHandle(TEXT("User32.dll")), "SetProcessDPIAware"); + + if (isDPIAwareProc) + { + fprintf(stderr, "Is DPI aware...\n"); + if (!isDPIAwareProc()) + { + if (setDPIAwareProc) + { + fprintf(stderr, "Set DPI aware.\n"); + setDPIAwareProc(); + } + } + } } const frontend_ctx_driver_t frontend_ctx_win32 = {