From 438327d56e7c88dd3fbee3d83223d29e5de90653 Mon Sep 17 00:00:00 2001
From: Yuhang Zhao <zhaoyuhang@rankyee.com>
Date: 周一, 11 12月 2023 17:42:53 +0800
Subject: [PATCH] simplify code

---
 src/core/qwindowkit_windows.cpp |   25 ++++++++++---------------
 1 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/core/qwindowkit_windows.cpp b/src/core/qwindowkit_windows.cpp
index 826c454..b74167f 100644
--- a/src/core/qwindowkit_windows.cpp
+++ b/src/core/qwindowkit_windows.cpp
@@ -2,22 +2,17 @@
 
 namespace QWK {
 
-    typedef NTSTATUS(WINAPI *RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
-
     RTL_OSVERSIONINFOW GetRealOSVersion() {
-        HMODULE hMod = GetModuleHandleW(L"ntdll.dll");
-        if (hMod) {
-            auto fxPtr = reinterpret_cast<RtlGetVersionPtr>(GetProcAddress(hMod, "RtlGetVersion"));
-            if (fxPtr != nullptr) {
-                RTL_OSVERSIONINFOW rovi = {0};
-                rovi.dwOSVersionInfoSize = sizeof(rovi);
-                if (0 == fxPtr(&rovi)) {
-                    return rovi;
-                }
-            }
-        }
-        RTL_OSVERSIONINFOW rovi = {0};
-        return rovi;
+        static const auto result = []() -> RTL_OSVERSIONINFOW {
+            HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
+            using RtlGetVersionPtr = NTSTATUS(WINAPI *)(PRTL_OSVERSIONINFOW);
+            auto pRtlGetVersion = reinterpret_cast<RtlGetVersionPtr>(::GetProcAddress(hMod, "RtlGetVersion"));
+            RTL_OSVERSIONINFOW rovi{};
+            rovi.dwOSVersionInfoSize = sizeof(rovi);
+            pRtlGetVersion(&rovi);
+            return rovi;
+        }();
+        return result;
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1