aboutsummaryrefslogtreecommitdiff
path: root/c/common.c
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-04-01 13:29:25 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-04-01 13:29:25 +0200
commit7b7fcdfef7487770d3089bafaedf467e30ed3afe (patch)
tree9ae144830bbf4a4ed8b96da3459bef4f30579f30 /c/common.c
parent0b32a837283c4f90aee67f0721e38bf929a04882 (diff)
downloadEpisodeBrowser-7b7fcdfef7487770d3089bafaedf467e30ed3afe.tar.gz
Support per-monitor DPI.
Diffstat (limited to 'c/common.c')
-rw-r--r--c/common.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/c/common.c b/c/common.c
index 804611d..a44462d 100644
--- a/c/common.c
+++ b/c/common.c
@@ -4,6 +4,24 @@
#include "resource.h"
#include "defs.h"
+/* Scale integer according to DPI. */
+int Dpi(int i)
+{
+ extern int IDPI;
+
+ if (IDPI == -1) {
+ HMODULE hModule;
+ FARPROC GetDpiForWindow;
+ extern HWND HWnd;
+ IDPI = 96;
+ hModule = LoadLibrary(TEXT("User32.dll"));
+ if (hModule && (GetDpiForWindow = GetProcAddress(hModule, "GetDpiForWindow")))
+ IDPI = GetDpiForWindow(HWnd);
+ }
+
+ return MulDiv(i, IDPI, 96);
+}
+
/* Convert normal string to TSTR using given codepage. */
TCHAR *
TszFromSz(const char *sz, int iCp)