comparison 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
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /*
2 * dwmapi.h
3 *
4 * Some dwmapi.dll exported functions such as
5 * DwmFlush
6 * DwmAttachMilContent
7 * DwmDetachMilContent
8 * are not declared in this header for not being documented by Microsoft
9 *
10 */
11
12 #ifndef __WINAPI_DWMAPI_H
13 #define __WINAPI_DWMAPI_H
14
15 /* FIXME: it may not be neccessary to include tchar.h and windows.h */
16 #include <tchar.h>
17 #include <windows.h>
18 /* FIXME end */
19
20 /* for MARGINS structure declaration. */
21 #include <uxtheme.h>
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* FIXME: move to winuser.h */
28 /* DWM messages. */
29 #define WM_DWMCOMPOSITIONCHANGED 0x031E
30 #define WM_DWMNCRENDERINGCHANGED 0x031F
31 #define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
32 #define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
33 /* FIXME end */
34
35
36
37 #define DWM_EC_DISABLECOMPOSITION 0
38 #define DWM_EC_ENABLECOMPOSITION 1
39
40 #define DWM_BB_ENABLE 0x00000001
41 #define DWM_BB_BLURREGION 0x00000002
42 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
43
44 typedef struct _DWM_BLURBEHIND {
45 DWORD dwFlags;
46 BOOL fEnable;
47 HRGN hRgnBlur;
48 BOOL fTransitionOnMaximized;
49 } DWM_BLURBEHIND, *PDWM_BLURBEHIND;
50
51 typedef struct _UNSIGNED_RATIO {
52 UINT32 uiNumerator;
53 UINT32 uiDenominator;
54 } UNSIGNED_RATIO;
55
56 typedef enum _DWM_SOURCE_FRAME_SAMPLING {
57 DWM_SOURCE_FRAME_SAMPLING_POINT = 1,
58 DWM_SOURCE_FRAME_SAMPLING_COVERAGE,
59 DWM_SOURCE_FRAME_SAMPLING_LAST
60 } DWM_SOURCE_FRAME_SAMPLING;
61
62 typedef ULONGLONG DWM_FRAME_COUNT;
63
64 typedef struct _DWM_PRESENT_PARAMETERS {
65 UINT32 cbSize;
66 BOOL fQueue;
67 DWM_FRAME_COUNT cRefreshStart;
68 UINT cBuffer;
69 BOOL fUseSourceRate;
70 UNSIGNED_RATIO rateSource;
71 UINT cRefreshesPerFrame;
72 DWM_SOURCE_FRAME_SAMPLING eSampling;
73 } DWM_PRESENT_PARAMETERS;
74
75 typedef ULONGLONG QPC_TIME;
76
77 typedef struct _DWM_TIMING_INFO {
78 UINT32 cbSize;
79 UNSIGNED_RATIO rateRefresh;
80 QPC_TIME qpcRefreshPeriod;
81 UNSIGNED_RATIO rateCompose;
82 QPC_TIME qpcVBlank;
83 DWM_FRAME_COUNT cRefresh;
84 UINT cDXRefresh;
85 QPC_TIME qpcCompose;
86 DWM_FRAME_COUNT cFrame;
87 UINT cDXPresent;
88 DWM_FRAME_COUNT cRefreshFrame;
89 DWM_FRAME_COUNT cFrameSubmitted;
90 UINT cDXPresentSubmitted;
91 DWM_FRAME_COUNT cFrameConfirmed;
92 UINT cDXPresentConfirmed;
93 DWM_FRAME_COUNT cRefreshConfirmed;
94 UINT cDXRefreshConfirmed;
95 DWM_FRAME_COUNT cFramesLate;
96 UINT cFramesOutstanding;
97 DWM_FRAME_COUNT cFrameDisplayed;
98 QPC_TIME qpcFrameDisplayed;
99 DWM_FRAME_COUNT cRefreshFrameDisplayed;
100 DWM_FRAME_COUNT cFrameComplete;
101 QPC_TIME qpcFrameComplete;
102 DWM_FRAME_COUNT cFramePending;
103 QPC_TIME qpcFramePending;
104 DWM_FRAME_COUNT cFramesDisplayed;
105 DWM_FRAME_COUNT cFramesComplete;
106 DWM_FRAME_COUNT cFramesPending;
107 DWM_FRAME_COUNT cFramesAvailable;
108 DWM_FRAME_COUNT cFramesDropped;
109 DWM_FRAME_COUNT cFramesMissed;
110 DWM_FRAME_COUNT cRefreshNextDisplayed;
111 DWM_FRAME_COUNT cRefreshNextPresented;
112 DWM_FRAME_COUNT cRefreshesDisplayed;
113 DWM_FRAME_COUNT cRefreshesPresented;
114 DWM_FRAME_COUNT cRefreshStarted;
115 ULONGLONG cPixelsReceived;
116 ULONGLONG cPixelsDrawn;
117 DWM_FRAME_COUNT cBuffersEmpty;
118 } DWM_TIMING_INFO;
119
120 typedef enum _DWMWINDOWATTRIBUTE {
121 DWMWA_NCRENDERING_ENABLED = 1,
122 DWMWA_NCRENDERING_POLICY,
123 DWMWA_TRANSITIONS_FORCEDISABLED,
124 DWMWA_ALLOW_NCPAINT,
125 DWMWA_CAPTION_BUTTON_BOUNDS,
126 DWMWA_NONCLIENT_RTL_LAYOUT,
127 DWMWA_FORCE_ICONIC_REPRESENTATION,
128 DWMWA_FLIP3D_POLICY,
129 DWMWA_EXTENDED_FRAME_BOUNDS,
130 DWMWA_LAST
131 } DWMWINDOWATTRIBUTE;
132
133 #define DWM_TNP_RECTDESTINATION 0x00000001
134 #define DWM_TNP_RECTSOURCE 0x00000002
135 #define DWM_TNP_OPACITY 0x00000004
136 #define DWM_TNP_VISIBLE 0x00000008
137 #define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010
138
139 typedef struct _DWM_THUMBNAIL_PROPERTIES {
140 DWORD dwFlags;
141 RECT rcDestination;
142 RECT rcSource;
143 BYTE opacity;
144 BOOL fVisible;
145 BOOL fSourceClientAreaOnly;
146 } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
147
148 typedef enum _DWMFLIP3DWINDOWPOLICY {
149 DWMFLIP3D_DEFAULT,
150 DWMFLIP3D_EXCLUDEBELOW,
151 DWMFLIP3D_EXCLUDEABOVE
152 } DWMFLIP3DWINDOWPOLICY;
153
154 typedef enum _DWMNCRENDERINGPOLICY {
155 DWMNCRP_USEWINDOWSTYLE,
156 DWMNCRP_DISABLED,
157 DWMNCRP_ENABLED,
158 DWMNCRP_LAST
159 } DWMNCRENDERINGPOLICY;
160
161 typedef HANDLE HTHUMBNAIL;
162 typedef HTHUMBNAIL* PHTHUMBNAIL;
163
164 /* Only for Vista and higher */
165 /* FIXME: use WINVER instead? */
166 #if _WIN32_WINNT >= 0x0600
167
168 BOOL DwmDefWindowProc(
169 HWND hwnd,
170 UINT msg,
171 WPARAM wParam,
172 LPARAM lParam,
173 LRESULT *plResult
174 );
175
176 HRESULT DwmEnableBlurBehindWindow(
177 HWND hWnd,
178 const DWM_BLURBEHIND *pBlurBehind
179 );
180
181 HRESULT DwmEnableComposition(
182 UINT uCompositionAction
183 );
184
185 HRESULT DwmEnableMMCSS(
186 BOOL fEnableMMCSS
187 );
188
189 HRESULT DwmExtendFrameIntoClientArea(
190 HWND hWnd,
191 const MARGINS *pMarInset
192 );
193
194 HRESULT DwmGetColorizationColor(
195 DWORD *pcrColorization,
196 BOOL *pfOpaqueBlend
197 );
198
199 HRESULT DwmGetCompositionTimingInfo(
200 HWND hwnd,
201 DWM_TIMING_INFO *pTimingInfo
202 );
203
204 HRESULT DwmGetWindowAttribute(
205 HWND hwnd,
206 DWORD dwAttribute,
207 PVOID pvAttribute,
208 DWORD cbAttribute
209 );
210
211 HRESULT DwmIsCompositionEnabled(
212 BOOL *pfEnabled
213 );
214
215 HRESULT DwmModifyPreviousDxFrameDuration(
216 HWND hwnd,
217 INT cRefreshes,
218 BOOL fRelative
219 );
220
221 HRESULT DwmQueryThumbnailSourceSize(
222 HTHUMBNAIL hThumbnail,
223 PSIZE pSize
224 );
225
226 HRESULT DwmRegisterThumbnail(
227 HWND hwndDestination,
228 HWND *hwndSource,
229 PHTHUMBNAIL phThumbnailId
230 );
231
232 HRESULT DwmSetDxFrameDuration(
233 HWND hwnd,
234 INT cRefreshes
235 );
236
237 HRESULT DwmSetPresentParameters(
238 HWND hwnd,
239 DWM_PRESENT_PARAMETERS *pPresentParams
240 );
241
242 HRESULT DwmSetWindowAttribute(
243 HWND hwnd,
244 DWORD dwAttribute,
245 LPCVOID pvAttribute,
246 DWORD cbAttribute
247 );
248
249 HRESULT DwmUnregisterThumbnail(
250 HTHUMBNAIL hThumbnailId
251 );
252
253 HRESULT DwmUpdateThumbnailProperties(
254 HTHUMBNAIL hThumbnailId,
255 const DWM_THUMBNAIL_PROPERTIES *ptnProperties
256 );
257
258 #endif
259
260 #ifdef __cplusplus
261 }
262 #endif
263
264 #endif /* __WINAPI_DWMAPI_H */
265