From ac1a62b2a76e4d15e412b9579b80da2dafbc6d6a Mon Sep 17 00:00:00 2001 From: SineStriker <55847490+SineStriker@users.noreply.github.com> Date: 周一, 19 5月 2025 15:38:12 +0800 Subject: [PATCH] Update qmsetup --- src/core/shared/qwkwindowsextra_p.h | 46 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/core/shared/qwkwindowsextra_p.h b/src/core/shared/qwkwindowsextra_p.h index 8fdc86e..a173be9 100644 --- a/src/core/shared/qwkwindowsextra_p.h +++ b/src/core/shared/qwkwindowsextra_p.h @@ -14,10 +14,6 @@ // version without notice, or may even be removed. // -#include <shellscalingapi.h> -#include <dwmapi.h> -#include <timeapi.h> - #include <QWKCore/qwindowkit_windows.h> #include <QtCore/QtMath> @@ -28,6 +24,42 @@ #include <QtCore/private/qsystemlibrary_p.h> // Don't include this header in any header files. + +typedef struct _MARGINS +{ + int cxLeftWidth; + int cxRightWidth; + int cyTopHeight; + int cyBottomHeight; +} MARGINS, *PMARGINS; + +typedef enum MONITOR_DPI_TYPE { + MDT_EFFECTIVE_DPI = 0, + MDT_ANGULAR_DPI = 1, + MDT_RAW_DPI = 2, + MDT_DEFAULT = MDT_EFFECTIVE_DPI +} MONITOR_DPI_TYPE; + +typedef struct _DWM_BLURBEHIND +{ + DWORD dwFlags; + BOOL fEnable; + HRGN hRgnBlur; + BOOL fTransitionOnMaximized; +} DWM_BLURBEHIND, *PDWM_BLURBEHIND; + +extern "C" { + UINT WINAPI GetDpiForWindow(HWND); + int WINAPI GetSystemMetricsForDpi(int, UINT); + BOOL WINAPI AdjustWindowRectExForDpi(LPRECT, DWORD, BOOL, DWORD, UINT); + HRESULT WINAPI GetDpiForMonitor(HMONITOR, MONITOR_DPI_TYPE, UINT *, UINT *); + HRESULT WINAPI DwmFlush(); + HRESULT WINAPI DwmIsCompositionEnabled(BOOL*); + HRESULT WINAPI DwmGetWindowAttribute(HWND, DWORD, PVOID, DWORD); + HRESULT WINAPI DwmSetWindowAttribute(HWND, DWORD, LPCVOID, DWORD); + HRESULT WINAPI DwmExtendFrameIntoClientArea(HWND, const MARGINS*); + HRESULT WINAPI DwmEnableBlurBehindWindow(HWND, const DWM_BLURBEHIND*); +} // extern "C" namespace QWK { @@ -160,7 +192,7 @@ namespace { struct DynamicApis { - static const DynamicApis &instance() { + static inline const DynamicApis &instance() { static const DynamicApis inst; return inst; } @@ -188,7 +220,7 @@ SetPreferredAppModePtr pSetPreferredAppMode = nullptr; private: - DynamicApis() { + inline DynamicApis() { #define DYNAMIC_API_RESOLVE(DLL, NAME) \ p##NAME = reinterpret_cast<decltype(p##NAME)>(DLL.resolve(#NAME)) @@ -224,7 +256,7 @@ #undef UNDOC_API_RESOLVE } - ~DynamicApis() = default; + inline ~DynamicApis() = default; Q_DISABLE_COPY(DynamicApis) }; -- Gitblit v1.9.1