[1166] | 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
|
---|