From 3de0e6bc9f886466ff1c4dad317a9d4cd2c8acb5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 20 Oct 2022 03:34:12 -0500 Subject: [PATCH] SetProcessDpiAwareness --- src/winMain.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/winMain.cpp b/src/winMain.cpp index 69034b9ff..853b11530 100644 --- a/src/winMain.cpp +++ b/src/winMain.cpp @@ -19,6 +19,8 @@ #include "utfutils.h" +typedef HRESULT (*SPDA)(int); + int WINAPI WinMain(HINSTANCE inst, HINSTANCE prevInst, PSTR args, int state) { int argc=0; wchar_t** argw=CommandLineToArgvW(GetCommandLineW(),&argc); @@ -29,5 +31,21 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prevInst, PSTR args, int state) { argv[i]=new char[str.size()+1]; strcpy(argv[i],str.c_str()); } + + // set DPI awareness + HMODULE shcore=LoadLibraryW(L"shcore.dll"); + if (shcore!=NULL) { + SPDA ta_SetProcessDpiAwareness=(SPDA)GetProcAddress(shcore,"SetProcessDpiAwareness"); + if (ta_SetProcessDpiAwareness!=NULL) { + HRESULT result=ta_SetProcessDpiAwareness(2); + if (result!=S_OK) { + // ??? + } + } + if (!FreeLibrary(shcore)) { + // ??? + } + } + return main(argc,argv); }