source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dwmapi.h@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 8.7 KB
Line 
1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5#include <winapifamily.h>
6
7#ifndef _DWMAPI_H_
8#define _DWMAPI_H_
9
10#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
11#ifndef DWMAPI
12#define DWMAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI
13#define DWMAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI
14#endif
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#include <wtypes.h>
21#include <uxtheme.h>
22
23#include <pshpack1.h>
24
25 typedef ULONGLONG DWM_FRAME_COUNT;
26 typedef ULONGLONG QPC_TIME;
27
28 typedef HANDLE HTHUMBNAIL;
29 typedef HTHUMBNAIL *PHTHUMBNAIL;
30
31 enum DWMWINDOWATTRIBUTE {
32 DWMWA_NCRENDERING_ENABLED = 1,
33 DWMWA_NCRENDERING_POLICY,
34 DWMWA_TRANSITIONS_FORCEDISABLED,
35 DWMWA_ALLOW_NCPAINT,
36 DWMWA_CAPTION_BUTTON_BOUNDS,
37 DWMWA_NONCLIENT_RTL_LAYOUT,
38 DWMWA_FORCE_ICONIC_REPRESENTATION,
39 DWMWA_FLIP3D_POLICY,
40 DWMWA_EXTENDED_FRAME_BOUNDS,
41 DWMWA_HAS_ICONIC_BITMAP,
42 DWMWA_DISALLOW_PEEK,
43 DWMWA_EXCLUDED_FROM_PEEK,
44 DWMWA_CLOAK,
45 DWMWA_CLOAKED,
46 DWMWA_FREEZE_REPRESENTATION,
47 DWMWA_PASSIVE_UPDATE_MODE,
48 DWMWA_LAST
49 };
50
51 enum DWMFLIP3DWINDOWPOLICY {
52 DWMFLIP3D_DEFAULT,
53 DWMFLIP3D_EXCLUDEBELOW,
54 DWMFLIP3D_EXCLUDEABOVE,
55 DWMFLIP3D_LAST
56 };
57
58 enum DWMNCRENDERINGPOLICY {
59 DWMNCRP_USEWINDOWSTYLE,
60 DWMNCRP_DISABLED,
61 DWMNCRP_ENABLED,
62 DWMNCRP_LAST
63 };
64
65#if NTDDI_VERSION >= NTDDI_WIN8
66 enum GESTURE_TYPE {
67 GT_PEN_TAP = 0,
68 GT_PEN_DOUBLETAP = 1,
69 GT_PEN_RIGHTTAP = 2,
70 GT_PEN_PRESSANDHOLD = 3,
71 GT_PEN_PRESSANDHOLDABORT = 4,
72 GT_TOUCH_TAP = 5,
73 GT_TOUCH_DOUBLETAP = 6,
74 GT_TOUCH_RIGHTTAP = 7,
75 GT_TOUCH_PRESSANDHOLD = 8,
76 GT_TOUCH_PRESSANDHOLDABORT = 9,
77 GT_TOUCH_PRESSANDTAP = 10,
78 };
79
80 enum DWM_SHOWCONTACT {
81 DWMSC_DOWN = 0x1,
82 DWMSC_UP = 0x2,
83 DWMSC_DRAG = 0x4,
84 DWMSC_HOLD = 0x8,
85 DWMSC_PENBARREL = 0x10,
86 DWMSC_NONE = 0x0,
87 DWMSC_ALL = 0xffffffff
88 };
89
90 DEFINE_ENUM_FLAG_OPERATORS (DWM_SHOWCONTACT);
91#endif
92
93#if NTDDI_VERSION >= NTDDI_WIN10_RS4
94 enum DWM_TAB_WINDOW_REQUIREMENTS {
95 DWMTWR_NONE = 0x0000,
96 DWMTWR_IMPLEMENTED_BY_SYSTEM = 0x0001,
97 DWMTWR_WINDOW_RELATIONSHIP = 0x0002,
98 DWMTWR_WINDOW_STYLES = 0x0004,
99 DWMTWR_WINDOW_REGION = 0x0008,
100 DWMTWR_WINDOW_DWM_ATTRIBUTES = 0x0010,
101 DWMTWR_WINDOW_MARGINS = 0x0020,
102 DWMTWR_TABBING_ENABLED = 0x0040,
103 DWMTWR_USER_POLICY = 0x0080,
104 DWMTWR_GROUP_POLICY = 0x0100,
105 DWMTWR_APP_COMPAT = 0x0200
106 };
107
108 DEFINE_ENUM_FLAG_OPERATORS(DWM_TAB_WINDOW_REQUIREMENTS);
109#endif
110
111 typedef enum {
112 DWM_SOURCE_FRAME_SAMPLING_POINT,
113 DWM_SOURCE_FRAME_SAMPLING_COVERAGE,
114 DWM_SOURCE_FRAME_SAMPLING_LAST
115 } DWM_SOURCE_FRAME_SAMPLING;
116
117 enum DWMTRANSITION_OWNEDWINDOW_TARGET {
118 DWMTRANSITION_OWNEDWINDOW_NULL = -1,
119 DWMTRANSITION_OWNEDWINDOW_REPOSITION = 0,
120 };
121
122 typedef struct _DWM_BLURBEHIND {
123 DWORD dwFlags;
124 WINBOOL fEnable;
125 HRGN hRgnBlur;
126 WINBOOL fTransitionOnMaximized;
127 } DWM_BLURBEHIND, *PDWM_BLURBEHIND;
128
129 typedef struct _DWM_THUMBNAIL_PROPERTIES {
130 DWORD dwFlags;
131 RECT rcDestination;
132 RECT rcSource;
133 BYTE opacity;
134 WINBOOL fVisible;
135 WINBOOL fSourceClientAreaOnly;
136 } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
137
138 typedef struct _UNSIGNED_RATIO {
139 UINT32 uiNumerator;
140 UINT32 uiDenominator;
141 } UNSIGNED_RATIO;
142
143 typedef struct _DWM_TIMING_INFO {
144 UINT32 cbSize;
145 UNSIGNED_RATIO rateRefresh;
146 QPC_TIME qpcRefreshPeriod;
147 UNSIGNED_RATIO rateCompose;
148 QPC_TIME qpcVBlank;
149 DWM_FRAME_COUNT cRefresh;
150 UINT cDXRefresh;
151 QPC_TIME qpcCompose;
152 DWM_FRAME_COUNT cFrame;
153 UINT cDXPresent;
154 DWM_FRAME_COUNT cRefreshFrame;
155 DWM_FRAME_COUNT cFrameSubmitted;
156 UINT cDXPresentSubmitted;
157 DWM_FRAME_COUNT cFrameConfirmed;
158 UINT cDXPresentConfirmed;
159 DWM_FRAME_COUNT cRefreshConfirmed;
160 UINT cDXRefreshConfirmed;
161 DWM_FRAME_COUNT cFramesLate;
162 UINT cFramesOutstanding;
163 DWM_FRAME_COUNT cFrameDisplayed;
164 QPC_TIME qpcFrameDisplayed;
165 DWM_FRAME_COUNT cRefreshFrameDisplayed;
166 DWM_FRAME_COUNT cFrameComplete;
167 QPC_TIME qpcFrameComplete;
168 DWM_FRAME_COUNT cFramePending;
169 QPC_TIME qpcFramePending;
170 DWM_FRAME_COUNT cFramesDisplayed;
171 DWM_FRAME_COUNT cFramesComplete;
172 DWM_FRAME_COUNT cFramesPending;
173 DWM_FRAME_COUNT cFramesAvailable;
174 DWM_FRAME_COUNT cFramesDropped;
175 DWM_FRAME_COUNT cFramesMissed;
176 DWM_FRAME_COUNT cRefreshNextDisplayed;
177 DWM_FRAME_COUNT cRefreshNextPresented;
178 DWM_FRAME_COUNT cRefreshesDisplayed;
179 DWM_FRAME_COUNT cRefreshesPresented;
180 DWM_FRAME_COUNT cRefreshStarted;
181 ULONGLONG cPixelsReceived;
182 ULONGLONG cPixelsDrawn;
183 DWM_FRAME_COUNT cBuffersEmpty;
184 } DWM_TIMING_INFO;
185
186 typedef struct _DWM_PRESENT_PARAMETERS {
187 UINT32 cbSize;
188 WINBOOL fQueue;
189 DWM_FRAME_COUNT cRefreshStart;
190 UINT cBuffer;
191 WINBOOL fUseSourceRate;
192 UNSIGNED_RATIO rateSource;
193 UINT cRefreshesPerFrame;
194 DWM_SOURCE_FRAME_SAMPLING eSampling;
195 } DWM_PRESENT_PARAMETERS;
196
197#ifndef _MIL_MATRIX3X2D_DEFINED
198#define _MIL_MATRIX3X2D_DEFINED
199
200 typedef struct _MilMatrix3x2D {
201 DOUBLE S_11;
202 DOUBLE S_12;
203 DOUBLE S_21;
204 DOUBLE S_22;
205 DOUBLE DX;
206 DOUBLE DY;
207 } MilMatrix3x2D;
208#endif
209
210#ifndef MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF
211#define MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF
212 typedef MilMatrix3x2D MIL_MATRIX3X2D;
213#endif
214
215#include <poppack.h>
216
217#define DWM_BB_ENABLE 0x1
218#define DWM_BB_BLURREGION 0x2
219#define DWM_BB_TRANSITIONONMAXIMIZED 0x4
220
221#define DWM_CLOAKED_APP 0x1
222#define DWM_CLOAKED_SHELL 0x2
223#define DWM_CLOAKED_INHERITED 0x4
224
225#define DWM_TNP_RECTDESTINATION 0x1
226#define DWM_TNP_RECTSOURCE 0x2
227#define DWM_TNP_OPACITY 0x4
228#define DWM_TNP_VISIBLE 0x8
229#define DWM_TNP_SOURCECLIENTAREAONLY 0x10
230
231#define DWM_FRAME_DURATION_DEFAULT -1
232
233#define c_DwmMaxQueuedBuffers 8
234#define c_DwmMaxMonitors 16
235#define c_DwmMaxAdapters 16
236
237#define DWM_EC_DISABLECOMPOSITION 0
238#define DWM_EC_ENABLECOMPOSITION 1
239
240#if _WIN32_WINNT >= 0x0601
241#define DWM_SIT_DISPLAYFRAME 0x1
242#endif
243
244 WINBOOL WINAPI DwmDefWindowProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult);
245 HRESULT WINAPI DwmEnableBlurBehindWindow (HWND hWnd, const DWM_BLURBEHIND *pBlurBehind);
246 HRESULT WINAPI DwmEnableComposition (UINT uCompositionAction);
247 HRESULT WINAPI DwmEnableMMCSS (WINBOOL fEnableMMCSS);
248 HRESULT WINAPI DwmExtendFrameIntoClientArea (HWND hWnd, const MARGINS *pMarInset);
249 HRESULT WINAPI DwmGetColorizationColor (DWORD *pcrColorization, WINBOOL *pfOpaqueBlend);
250 HRESULT WINAPI DwmGetCompositionTimingInfo (HWND hwnd, DWM_TIMING_INFO *pTimingInfo);
251 HRESULT WINAPI DwmGetWindowAttribute (HWND hwnd, DWORD dwAttribute, PVOID pvAttribute, DWORD cbAttribute);
252 HRESULT WINAPI DwmIsCompositionEnabled (WINBOOL *pfEnabled);
253 HRESULT WINAPI DwmModifyPreviousDxFrameDuration (HWND hwnd, INT cRefreshes, WINBOOL fRelative);
254 HRESULT WINAPI DwmQueryThumbnailSourceSize (HTHUMBNAIL hThumbnail, PSIZE pSize);
255 HRESULT WINAPI DwmRegisterThumbnail (HWND hwndDestination, HWND hwndSource, PHTHUMBNAIL phThumbnailId);
256 HRESULT WINAPI DwmSetDxFrameDuration (HWND hwnd, INT cRefreshes);
257 HRESULT WINAPI DwmSetPresentParameters (HWND hwnd, DWM_PRESENT_PARAMETERS *pPresentParams);
258 HRESULT WINAPI DwmSetWindowAttribute (HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute);
259 HRESULT WINAPI DwmUnregisterThumbnail (HTHUMBNAIL hThumbnailId);
260 HRESULT WINAPI DwmUpdateThumbnailProperties (HTHUMBNAIL hThumbnailId, const DWM_THUMBNAIL_PROPERTIES *ptnProperties);
261 HRESULT WINAPI DwmAttachMilContent (HWND hwnd);
262 HRESULT WINAPI DwmDetachMilContent (HWND hwnd);
263 HRESULT WINAPI DwmFlush ();
264 HRESULT WINAPI DwmGetGraphicsStreamTransformHint (UINT uIndex, MilMatrix3x2D *pTransform);
265 HRESULT WINAPI DwmGetGraphicsStreamClient (UINT uIndex, UUID *pClientUuid);
266 HRESULT WINAPI DwmGetTransportAttributes (WINBOOL *pfIsRemoting, WINBOOL *pfIsConnected, DWORD *pDwGeneration);
267 HRESULT WINAPI DwmTransitionOwnedWindow (HWND hwnd, enum DWMTRANSITION_OWNEDWINDOW_TARGET target);
268#if _WIN32_WINNT >= 0x0601
269 HRESULT WINAPI DwmSetIconicThumbnail (HWND hwnd, HBITMAP hbmp, DWORD dwSITFlags);
270 HRESULT WINAPI DwmSetIconicLivePreviewBitmap (HWND hwnd, HBITMAP hbmp, POINT *pptClient, DWORD dwSITFlags);
271 HRESULT WINAPI DwmInvalidateIconicBitmaps (HWND hwnd);
272#endif
273#if NTDDI_VERSION >= NTDDI_WIN8
274 HRESULT WINAPI DwmRenderGesture (enum GESTURE_TYPE gt, UINT cContacts, const DWORD *pdwPointerID, const POINT *pPoints);
275 HRESULT WINAPI DwmTetherContact (DWORD dwPointerID, WINBOOL fEnable, POINT ptTether);
276 HRESULT WINAPI DwmShowContact (DWORD dwPointerID, enum DWM_SHOWCONTACT eShowContact);
277#endif
278#if NTDDI_VERSION >= NTDDI_WIN10_RS4
279 HRESULT WINAPI DwmGetUnmetTabRequirements (HWND appWindow, enum DWM_TAB_WINDOW_REQUIREMENTS *value);
280#endif
281
282#ifdef __cplusplus
283}
284#endif
285#endif
286#endif
Note: See TracBrowser for help on using the repository browser.