| 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 |
| 17 |
extern "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 |