From b0249aebbacf71eee27e77c766ccb3dc33693b11 Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周日, 10 12月 2023 13:54:14 +0800
Subject: [PATCH] a little simplify

---
 src/core/contexts/win32windowcontext.cpp |   54 +++++++++++++++++++++++++-----------------------------
 1 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp
index 72f20e0..0f2b23f 100644
--- a/src/core/contexts/win32windowcontext.cpp
+++ b/src/core/contexts/win32windowcontext.cpp
@@ -60,46 +60,42 @@
 //            }
 //        };
 //
-// #define DWM_API_DECLARE(NAME) decltype(&::NAME) p##NAME = DefaultFunc<decltype(&::NAME)>::func
-#define DWM_API_DECLARE(NAME) decltype(&::NAME) p##NAME = nullptr
+// #define DYNAMIC_API_DECLARE(NAME) decltype(&::NAME) p##NAME = DefaultFunc<decltype(&::NAME)>::func
+#define DYNAMIC_API_DECLARE(NAME) decltype(&::NAME) p##NAME = nullptr
 
-        DWM_API_DECLARE(DwmFlush);
-        DWM_API_DECLARE(DwmIsCompositionEnabled);
-        DWM_API_DECLARE(DwmGetCompositionTimingInfo);
-        DWM_API_DECLARE(GetDpiForWindow);
-        DWM_API_DECLARE(GetSystemMetricsForDpi);
-        DWM_API_DECLARE(GetDpiForMonitor);
-        DWM_API_DECLARE(timeGetDevCaps);
-        DWM_API_DECLARE(timeBeginPeriod);
-        DWM_API_DECLARE(timeEndPeriod);
+        DYNAMIC_API_DECLARE(DwmFlush);
+        DYNAMIC_API_DECLARE(DwmIsCompositionEnabled);
+        DYNAMIC_API_DECLARE(DwmGetCompositionTimingInfo);
+        DYNAMIC_API_DECLARE(GetDpiForWindow);
+        DYNAMIC_API_DECLARE(GetSystemMetricsForDpi);
+        DYNAMIC_API_DECLARE(GetDpiForMonitor);
+        DYNAMIC_API_DECLARE(timeGetDevCaps);
+        DYNAMIC_API_DECLARE(timeBeginPeriod);
+        DYNAMIC_API_DECLARE(timeEndPeriod);
 
-#undef DWM_API_DECLARE
+#undef DYNAMIC_API_DECLARE
 
         DynamicApis() {
+#define DYNAMIC_API_RESOLVE(DLL, NAME) p##NAME = reinterpret_cast<decltype(p##NAME)>(DLL##.resolve(#NAME))
+
             QSystemLibrary user32(QStringLiteral("user32"));
-            pGetDpiForWindow =
-                reinterpret_cast<decltype(pGetDpiForWindow)>(user32.resolve("GetDpiForWindow"));
-            pGetSystemMetricsForDpi = reinterpret_cast<decltype(pGetSystemMetricsForDpi)>(
-                user32.resolve("GetSystemMetricsForDpi"));
+            DYNAMIC_API_RESOLVE(user32, GetDpiForWindow);
+            DYNAMIC_API_RESOLVE(user32, GetSystemMetricsForDpi);
 
             QSystemLibrary shcore(QStringLiteral("shcore"));
-            pGetDpiForMonitor =
-                reinterpret_cast<decltype(pGetDpiForMonitor)>(shcore.resolve("GetDpiForMonitor"));
+            DYNAMIC_API_RESOLVE(shcore, GetDpiForMonitor);
 
             QSystemLibrary dwmapi(QStringLiteral("dwmapi"));
-            pDwmFlush = reinterpret_cast<decltype(pDwmFlush)>(dwmapi.resolve("DwmFlush"));
-            pDwmIsCompositionEnabled = reinterpret_cast<decltype(pDwmIsCompositionEnabled)>(
-                dwmapi.resolve("DwmIsCompositionEnabled"));
-            pDwmGetCompositionTimingInfo = reinterpret_cast<decltype(pDwmGetCompositionTimingInfo)>(
-                dwmapi.resolve("DwmGetCompositionTimingInfo"));
+            DYNAMIC_API_RESOLVE(dwmapi, DwmFlush);
+            DYNAMIC_API_RESOLVE(dwmapi, DwmIsCompositionEnabled);
+            DYNAMIC_API_RESOLVE(dwmapi, DwmGetCompositionTimingInfo);
 
             QSystemLibrary winmm(QStringLiteral("winmm"));
-            ptimeGetDevCaps =
-                reinterpret_cast<decltype(ptimeGetDevCaps)>(winmm.resolve("timeGetDevCaps"));
-            ptimeBeginPeriod =
-                reinterpret_cast<decltype(ptimeBeginPeriod)>(winmm.resolve("timeBeginPeriod"));
-            ptimeEndPeriod =
-                reinterpret_cast<decltype(ptimeEndPeriod)>(winmm.resolve("timeEndPeriod"));
+            DYNAMIC_API_RESOLVE(winmm, timeGetDevCaps);
+            DYNAMIC_API_RESOLVE(winmm, timeBeginPeriod);
+            DYNAMIC_API_RESOLVE(winmm, timeEndPeriod);
+
+#undef DYNAMIC_API_RESOLVE
         }
 
         ~DynamicApis() = default;

--
Gitblit v1.9.1