diff fuhtark_test/include/winapi/dwmapi.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/dwmapi.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,265 @@
+/*
+ * dwmapi.h
+ *
+ * Some dwmapi.dll exported functions such as
+ *   DwmFlush
+ *   DwmAttachMilContent
+ *   DwmDetachMilContent
+ * are not declared in this header for not being documented by Microsoft
+ *
+ */
+
+#ifndef __WINAPI_DWMAPI_H
+#define __WINAPI_DWMAPI_H
+
+/* FIXME: it may not be neccessary to include tchar.h and windows.h */
+#include <tchar.h>
+#include <windows.h>
+/* FIXME end */
+
+/* for MARGINS structure declaration.  */
+#include <uxtheme.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FIXME: move to winuser.h */
+/* DWM messages.  */
+#define WM_DWMCOMPOSITIONCHANGED 0x031E
+#define WM_DWMNCRENDERINGCHANGED 0x031F
+#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
+#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
+/* FIXME end */
+
+
+
+#define DWM_EC_DISABLECOMPOSITION 0
+#define DWM_EC_ENABLECOMPOSITION 1
+
+#define DWM_BB_ENABLE     0x00000001
+#define DWM_BB_BLURREGION 0x00000002
+#define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
+
+typedef struct _DWM_BLURBEHIND {
+    DWORD dwFlags;
+    BOOL fEnable;
+    HRGN hRgnBlur;
+    BOOL fTransitionOnMaximized;
+} DWM_BLURBEHIND, *PDWM_BLURBEHIND;
+
+typedef struct _UNSIGNED_RATIO {
+    UINT32 uiNumerator;
+    UINT32 uiDenominator;
+} UNSIGNED_RATIO;
+
+typedef enum _DWM_SOURCE_FRAME_SAMPLING {
+    DWM_SOURCE_FRAME_SAMPLING_POINT = 1,
+    DWM_SOURCE_FRAME_SAMPLING_COVERAGE,
+    DWM_SOURCE_FRAME_SAMPLING_LAST
+} DWM_SOURCE_FRAME_SAMPLING;
+
+typedef ULONGLONG DWM_FRAME_COUNT;
+
+typedef struct _DWM_PRESENT_PARAMETERS {
+    UINT32 cbSize;
+    BOOL fQueue;
+    DWM_FRAME_COUNT cRefreshStart;
+    UINT cBuffer;
+    BOOL fUseSourceRate;
+    UNSIGNED_RATIO rateSource;
+    UINT cRefreshesPerFrame;
+    DWM_SOURCE_FRAME_SAMPLING eSampling;
+} DWM_PRESENT_PARAMETERS;
+
+typedef ULONGLONG QPC_TIME;
+
+typedef struct _DWM_TIMING_INFO {
+    UINT32 cbSize;
+    UNSIGNED_RATIO rateRefresh;
+    QPC_TIME qpcRefreshPeriod;
+    UNSIGNED_RATIO rateCompose;
+    QPC_TIME qpcVBlank;
+    DWM_FRAME_COUNT cRefresh;
+    UINT cDXRefresh;
+    QPC_TIME qpcCompose;
+    DWM_FRAME_COUNT cFrame;
+    UINT cDXPresent;
+    DWM_FRAME_COUNT cRefreshFrame;
+    DWM_FRAME_COUNT cFrameSubmitted;
+    UINT cDXPresentSubmitted;
+    DWM_FRAME_COUNT cFrameConfirmed;
+    UINT cDXPresentConfirmed;
+    DWM_FRAME_COUNT cRefreshConfirmed;
+    UINT cDXRefreshConfirmed;
+    DWM_FRAME_COUNT cFramesLate;
+    UINT cFramesOutstanding;
+    DWM_FRAME_COUNT cFrameDisplayed;
+    QPC_TIME qpcFrameDisplayed;
+    DWM_FRAME_COUNT cRefreshFrameDisplayed;
+    DWM_FRAME_COUNT cFrameComplete;
+    QPC_TIME qpcFrameComplete;
+    DWM_FRAME_COUNT cFramePending;
+    QPC_TIME qpcFramePending;
+    DWM_FRAME_COUNT cFramesDisplayed;
+    DWM_FRAME_COUNT cFramesComplete;
+    DWM_FRAME_COUNT cFramesPending;
+    DWM_FRAME_COUNT cFramesAvailable;
+    DWM_FRAME_COUNT cFramesDropped;
+    DWM_FRAME_COUNT cFramesMissed;
+    DWM_FRAME_COUNT cRefreshNextDisplayed;
+    DWM_FRAME_COUNT cRefreshNextPresented;
+    DWM_FRAME_COUNT cRefreshesDisplayed;
+    DWM_FRAME_COUNT cRefreshesPresented;
+    DWM_FRAME_COUNT cRefreshStarted;
+    ULONGLONG cPixelsReceived;
+    ULONGLONG cPixelsDrawn;
+    DWM_FRAME_COUNT cBuffersEmpty;
+} DWM_TIMING_INFO;
+
+typedef enum _DWMWINDOWATTRIBUTE {
+    DWMWA_NCRENDERING_ENABLED = 1,
+    DWMWA_NCRENDERING_POLICY,
+    DWMWA_TRANSITIONS_FORCEDISABLED,
+    DWMWA_ALLOW_NCPAINT,
+    DWMWA_CAPTION_BUTTON_BOUNDS,
+    DWMWA_NONCLIENT_RTL_LAYOUT,
+    DWMWA_FORCE_ICONIC_REPRESENTATION,
+    DWMWA_FLIP3D_POLICY,
+    DWMWA_EXTENDED_FRAME_BOUNDS,
+    DWMWA_LAST
+} DWMWINDOWATTRIBUTE;
+
+#define DWM_TNP_RECTDESTINATION 0x00000001
+#define DWM_TNP_RECTSOURCE      0x00000002
+#define DWM_TNP_OPACITY         0x00000004
+#define DWM_TNP_VISIBLE         0x00000008
+#define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010
+
+typedef struct _DWM_THUMBNAIL_PROPERTIES {
+    DWORD dwFlags;
+    RECT rcDestination;
+    RECT rcSource;
+    BYTE opacity;
+    BOOL fVisible;
+    BOOL fSourceClientAreaOnly;
+} DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
+
+typedef enum _DWMFLIP3DWINDOWPOLICY {
+    DWMFLIP3D_DEFAULT,
+    DWMFLIP3D_EXCLUDEBELOW,
+    DWMFLIP3D_EXCLUDEABOVE
+} DWMFLIP3DWINDOWPOLICY;
+
+typedef enum _DWMNCRENDERINGPOLICY {
+    DWMNCRP_USEWINDOWSTYLE,
+    DWMNCRP_DISABLED,
+    DWMNCRP_ENABLED,
+    DWMNCRP_LAST
+} DWMNCRENDERINGPOLICY;
+
+typedef HANDLE HTHUMBNAIL;
+typedef HTHUMBNAIL* PHTHUMBNAIL;
+
+/* Only for Vista and higher */
+/* FIXME: use WINVER instead? */
+#if _WIN32_WINNT >= 0x0600
+
+BOOL DwmDefWindowProc(
+    HWND hwnd,
+    UINT msg,
+    WPARAM wParam,
+    LPARAM lParam,
+    LRESULT *plResult
+);
+
+HRESULT DwmEnableBlurBehindWindow(
+    HWND hWnd,
+    const DWM_BLURBEHIND *pBlurBehind
+);
+
+HRESULT DwmEnableComposition(
+    UINT uCompositionAction
+);
+
+HRESULT DwmEnableMMCSS(
+    BOOL fEnableMMCSS
+);
+
+HRESULT DwmExtendFrameIntoClientArea(
+    HWND hWnd,
+    const MARGINS *pMarInset
+);
+
+HRESULT DwmGetColorizationColor(
+    DWORD *pcrColorization,
+    BOOL *pfOpaqueBlend
+);
+
+HRESULT DwmGetCompositionTimingInfo(
+    HWND hwnd,
+    DWM_TIMING_INFO *pTimingInfo
+);
+
+HRESULT DwmGetWindowAttribute(
+    HWND hwnd,
+    DWORD dwAttribute,
+    PVOID pvAttribute,
+    DWORD cbAttribute
+);
+
+HRESULT DwmIsCompositionEnabled(
+    BOOL *pfEnabled
+);
+
+HRESULT DwmModifyPreviousDxFrameDuration(
+    HWND hwnd,
+    INT cRefreshes,
+    BOOL fRelative
+);
+
+HRESULT DwmQueryThumbnailSourceSize(
+    HTHUMBNAIL hThumbnail,
+    PSIZE pSize
+);
+
+HRESULT DwmRegisterThumbnail(
+    HWND hwndDestination,
+    HWND *hwndSource,
+    PHTHUMBNAIL phThumbnailId
+);
+
+HRESULT DwmSetDxFrameDuration(
+    HWND hwnd,
+    INT cRefreshes
+);
+
+HRESULT DwmSetPresentParameters(
+    HWND hwnd,
+    DWM_PRESENT_PARAMETERS *pPresentParams
+);
+
+HRESULT DwmSetWindowAttribute(
+    HWND hwnd,
+    DWORD dwAttribute,
+    LPCVOID pvAttribute,
+    DWORD cbAttribute
+);
+
+HRESULT DwmUnregisterThumbnail(
+    HTHUMBNAIL hThumbnailId
+);
+
+HRESULT DwmUpdateThumbnailProperties(
+    HTHUMBNAIL hThumbnailId,
+    const DWM_THUMBNAIL_PROPERTIES *ptnProperties
+);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINAPI_DWMAPI_H */
+