|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #ifndef _DWMAPI_H_ | 
|  | #define _DWMAPI_H_ | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | 
|  | #ifndef DWMAPI | 
|  | #define DWMAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI | 
|  | #define DWMAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <wtypes.h> | 
|  | #include <uxtheme.h> | 
|  |  | 
|  | #include <pshpack1.h> | 
|  |  | 
|  | typedef ULONGLONG DWM_FRAME_COUNT; | 
|  | typedef ULONGLONG QPC_TIME; | 
|  |  | 
|  | typedef HANDLE HTHUMBNAIL; | 
|  | typedef HTHUMBNAIL *PHTHUMBNAIL; | 
|  |  | 
|  | 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_HAS_ICONIC_BITMAP, | 
|  | DWMWA_DISALLOW_PEEK, | 
|  | DWMWA_EXCLUDED_FROM_PEEK, | 
|  | DWMWA_CLOAK, | 
|  | DWMWA_CLOAKED, | 
|  | DWMWA_FREEZE_REPRESENTATION, | 
|  | DWMWA_PASSIVE_UPDATE_MODE, | 
|  | DWMWA_USE_HOSTBACKDROPBRUSH, | 
|  | DWMWA_USE_IMMERSIVE_DARK_MODE = 20, | 
|  | DWMWA_WINDOW_CORNER_PREFERENCE = 33, | 
|  | DWMWA_BORDER_COLOR, | 
|  | DWMWA_CAPTION_COLOR, | 
|  | DWMWA_TEXT_COLOR, | 
|  | DWMWA_VISIBLE_FRAME_BORDER_THICKNESS, | 
|  | DWMWA_SYSTEMBACKDROP_TYPE, | 
|  | DWMWA_LAST | 
|  | }; | 
|  |  | 
|  | typedef enum { | 
|  | DWMWCP_DEFAULT = 0, | 
|  | DWMWCP_DONOTROUND = 1, | 
|  | DWMWCP_ROUND = 2, | 
|  | DWMWCP_ROUNDSMALL = 3 | 
|  | } DWM_WINDOW_CORNER_PREFERENCE; | 
|  |  | 
|  | #define DWMWA_COLOR_DEFAULT 0xFFFFFFFF | 
|  | #define DWMWA_COLOR_NONE 0xFFFFFFFE | 
|  |  | 
|  | enum DWM_SYSTEMBACKDROP_TYPE { | 
|  | DWMSBT_AUTO, | 
|  | DWMSBT_NONE, | 
|  | DWMSBT_MAINWINDOW, | 
|  | DWMSBT_TRANSIENTWINDOW, | 
|  | DWMSBT_TABBEDWINDOW | 
|  | }; | 
|  |  | 
|  | enum DWMFLIP3DWINDOWPOLICY { | 
|  | DWMFLIP3D_DEFAULT, | 
|  | DWMFLIP3D_EXCLUDEBELOW, | 
|  | DWMFLIP3D_EXCLUDEABOVE, | 
|  | DWMFLIP3D_LAST | 
|  | }; | 
|  |  | 
|  | enum DWMNCRENDERINGPOLICY { | 
|  | DWMNCRP_USEWINDOWSTYLE, | 
|  | DWMNCRP_DISABLED, | 
|  | DWMNCRP_ENABLED, | 
|  | DWMNCRP_LAST | 
|  | }; | 
|  |  | 
|  | #if NTDDI_VERSION >= NTDDI_WIN8 | 
|  | enum GESTURE_TYPE { | 
|  | GT_PEN_TAP = 0, | 
|  | GT_PEN_DOUBLETAP = 1, | 
|  | GT_PEN_RIGHTTAP = 2, | 
|  | GT_PEN_PRESSANDHOLD = 3, | 
|  | GT_PEN_PRESSANDHOLDABORT = 4, | 
|  | GT_TOUCH_TAP = 5, | 
|  | GT_TOUCH_DOUBLETAP = 6, | 
|  | GT_TOUCH_RIGHTTAP = 7, | 
|  | GT_TOUCH_PRESSANDHOLD = 8, | 
|  | GT_TOUCH_PRESSANDHOLDABORT = 9, | 
|  | GT_TOUCH_PRESSANDTAP = 10, | 
|  | }; | 
|  |  | 
|  | enum DWM_SHOWCONTACT { | 
|  | DWMSC_DOWN = 0x1, | 
|  | DWMSC_UP = 0x2, | 
|  | DWMSC_DRAG = 0x4, | 
|  | DWMSC_HOLD = 0x8, | 
|  | DWMSC_PENBARREL = 0x10, | 
|  | DWMSC_NONE = 0x0, | 
|  | DWMSC_ALL = 0xffffffff | 
|  | }; | 
|  |  | 
|  | DEFINE_ENUM_FLAG_OPERATORS (DWM_SHOWCONTACT); | 
|  | #endif | 
|  |  | 
|  | #if NTDDI_VERSION >= NTDDI_WIN10_RS4 | 
|  | enum DWM_TAB_WINDOW_REQUIREMENTS { | 
|  | DWMTWR_NONE = 0x0000, | 
|  | DWMTWR_IMPLEMENTED_BY_SYSTEM = 0x0001, | 
|  | DWMTWR_WINDOW_RELATIONSHIP = 0x0002, | 
|  | DWMTWR_WINDOW_STYLES = 0x0004, | 
|  | DWMTWR_WINDOW_REGION = 0x0008, | 
|  | DWMTWR_WINDOW_DWM_ATTRIBUTES = 0x0010, | 
|  | DWMTWR_WINDOW_MARGINS = 0x0020, | 
|  | DWMTWR_TABBING_ENABLED = 0x0040, | 
|  | DWMTWR_USER_POLICY = 0x0080, | 
|  | DWMTWR_GROUP_POLICY = 0x0100, | 
|  | DWMTWR_APP_COMPAT = 0x0200 | 
|  | }; | 
|  |  | 
|  | DEFINE_ENUM_FLAG_OPERATORS(DWM_TAB_WINDOW_REQUIREMENTS); | 
|  | #endif | 
|  |  | 
|  | typedef enum { | 
|  | DWM_SOURCE_FRAME_SAMPLING_POINT, | 
|  | DWM_SOURCE_FRAME_SAMPLING_COVERAGE, | 
|  | DWM_SOURCE_FRAME_SAMPLING_LAST | 
|  | } DWM_SOURCE_FRAME_SAMPLING; | 
|  |  | 
|  | enum DWMTRANSITION_OWNEDWINDOW_TARGET { | 
|  | DWMTRANSITION_OWNEDWINDOW_NULL = -1, | 
|  | DWMTRANSITION_OWNEDWINDOW_REPOSITION = 0 | 
|  | }; | 
|  |  | 
|  | typedef struct _DWM_BLURBEHIND { | 
|  | DWORD dwFlags; | 
|  | WINBOOL fEnable; | 
|  | HRGN hRgnBlur; | 
|  | WINBOOL fTransitionOnMaximized; | 
|  | } DWM_BLURBEHIND, *PDWM_BLURBEHIND; | 
|  |  | 
|  | typedef struct _DWM_THUMBNAIL_PROPERTIES { | 
|  | DWORD dwFlags; | 
|  | RECT rcDestination; | 
|  | RECT rcSource; | 
|  | BYTE opacity; | 
|  | WINBOOL fVisible; | 
|  | WINBOOL fSourceClientAreaOnly; | 
|  | } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES; | 
|  |  | 
|  | typedef struct _UNSIGNED_RATIO { | 
|  | UINT32 uiNumerator; | 
|  | UINT32 uiDenominator; | 
|  | } UNSIGNED_RATIO; | 
|  |  | 
|  | 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 struct _DWM_PRESENT_PARAMETERS { | 
|  | UINT32 cbSize; | 
|  | WINBOOL fQueue; | 
|  | DWM_FRAME_COUNT cRefreshStart; | 
|  | UINT cBuffer; | 
|  | WINBOOL fUseSourceRate; | 
|  | UNSIGNED_RATIO rateSource; | 
|  | UINT cRefreshesPerFrame; | 
|  | DWM_SOURCE_FRAME_SAMPLING eSampling; | 
|  | } DWM_PRESENT_PARAMETERS; | 
|  |  | 
|  | #ifndef _MIL_MATRIX3X2D_DEFINED | 
|  | #define _MIL_MATRIX3X2D_DEFINED | 
|  |  | 
|  | typedef struct _MilMatrix3x2D { | 
|  | DOUBLE S_11; | 
|  | DOUBLE S_12; | 
|  | DOUBLE S_21; | 
|  | DOUBLE S_22; | 
|  | DOUBLE DX; | 
|  | DOUBLE DY; | 
|  | } MilMatrix3x2D; | 
|  | #endif | 
|  |  | 
|  | #ifndef MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF | 
|  | #define MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF | 
|  | typedef MilMatrix3x2D MIL_MATRIX3X2D; | 
|  | #endif | 
|  |  | 
|  | #include <poppack.h> | 
|  |  | 
|  | #define DWM_BB_ENABLE 0x1 | 
|  | #define DWM_BB_BLURREGION 0x2 | 
|  | #define DWM_BB_TRANSITIONONMAXIMIZED 0x4 | 
|  |  | 
|  | #define DWM_CLOAKED_APP 0x1 | 
|  | #define DWM_CLOAKED_SHELL 0x2 | 
|  | #define DWM_CLOAKED_INHERITED 0x4 | 
|  |  | 
|  | #define DWM_TNP_RECTDESTINATION 0x1 | 
|  | #define DWM_TNP_RECTSOURCE 0x2 | 
|  | #define DWM_TNP_OPACITY 0x4 | 
|  | #define DWM_TNP_VISIBLE 0x8 | 
|  | #define DWM_TNP_SOURCECLIENTAREAONLY 0x10 | 
|  |  | 
|  | #define DWM_FRAME_DURATION_DEFAULT -1 | 
|  |  | 
|  | #define c_DwmMaxQueuedBuffers 8 | 
|  | #define c_DwmMaxMonitors 16 | 
|  | #define c_DwmMaxAdapters 16 | 
|  |  | 
|  | #define DWM_EC_DISABLECOMPOSITION 0 | 
|  | #define DWM_EC_ENABLECOMPOSITION 1 | 
|  |  | 
|  | #if _WIN32_WINNT >= 0x0601 | 
|  | #define DWM_SIT_DISPLAYFRAME 0x1 | 
|  | #endif | 
|  |  | 
|  | WINBOOL WINAPI DwmDefWindowProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult); | 
|  | HRESULT WINAPI DwmEnableBlurBehindWindow (HWND hWnd, const DWM_BLURBEHIND *pBlurBehind); | 
|  | HRESULT WINAPI DwmEnableComposition (UINT uCompositionAction); | 
|  | HRESULT WINAPI DwmEnableMMCSS (WINBOOL fEnableMMCSS); | 
|  | HRESULT WINAPI DwmExtendFrameIntoClientArea (HWND hWnd, const MARGINS *pMarInset); | 
|  | HRESULT WINAPI DwmGetColorizationColor (DWORD *pcrColorization, WINBOOL *pfOpaqueBlend); | 
|  | HRESULT WINAPI DwmGetCompositionTimingInfo (HWND hwnd, DWM_TIMING_INFO *pTimingInfo); | 
|  | HRESULT WINAPI DwmGetWindowAttribute (HWND hwnd, DWORD dwAttribute, PVOID pvAttribute, DWORD cbAttribute); | 
|  | HRESULT WINAPI DwmIsCompositionEnabled (WINBOOL *pfEnabled); | 
|  | HRESULT WINAPI DwmModifyPreviousDxFrameDuration (HWND hwnd, INT cRefreshes, WINBOOL fRelative); | 
|  | HRESULT WINAPI DwmQueryThumbnailSourceSize (HTHUMBNAIL hThumbnail, PSIZE pSize); | 
|  | HRESULT WINAPI DwmRegisterThumbnail (HWND hwndDestination, HWND hwndSource, PHTHUMBNAIL phThumbnailId); | 
|  | HRESULT WINAPI DwmSetDxFrameDuration (HWND hwnd, INT cRefreshes); | 
|  | HRESULT WINAPI DwmSetPresentParameters (HWND hwnd, DWM_PRESENT_PARAMETERS *pPresentParams); | 
|  | HRESULT WINAPI DwmSetWindowAttribute (HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); | 
|  | HRESULT WINAPI DwmUnregisterThumbnail (HTHUMBNAIL hThumbnailId); | 
|  | HRESULT WINAPI DwmUpdateThumbnailProperties (HTHUMBNAIL hThumbnailId, const DWM_THUMBNAIL_PROPERTIES *ptnProperties); | 
|  | HRESULT WINAPI DwmAttachMilContent (HWND hwnd); | 
|  | HRESULT WINAPI DwmDetachMilContent (HWND hwnd); | 
|  | HRESULT WINAPI DwmFlush (); | 
|  | HRESULT WINAPI DwmGetGraphicsStreamTransformHint (UINT uIndex, MilMatrix3x2D *pTransform); | 
|  | HRESULT WINAPI DwmGetGraphicsStreamClient (UINT uIndex, UUID *pClientUuid); | 
|  | HRESULT WINAPI DwmGetTransportAttributes (WINBOOL *pfIsRemoting, WINBOOL *pfIsConnected, DWORD *pDwGeneration); | 
|  | HRESULT WINAPI DwmTransitionOwnedWindow (HWND hwnd, enum DWMTRANSITION_OWNEDWINDOW_TARGET target); | 
|  | #if _WIN32_WINNT >= 0x0601 | 
|  | HRESULT WINAPI DwmSetIconicThumbnail (HWND hwnd, HBITMAP hbmp, DWORD dwSITFlags); | 
|  | HRESULT WINAPI DwmSetIconicLivePreviewBitmap (HWND hwnd, HBITMAP hbmp, POINT *pptClient, DWORD dwSITFlags); | 
|  | HRESULT WINAPI DwmInvalidateIconicBitmaps (HWND hwnd); | 
|  | #endif | 
|  | #if NTDDI_VERSION >= NTDDI_WIN8 | 
|  | HRESULT WINAPI DwmRenderGesture (enum GESTURE_TYPE gt, UINT cContacts, const DWORD *pdwPointerID, const POINT *pPoints); | 
|  | HRESULT WINAPI DwmTetherContact (DWORD dwPointerID, WINBOOL fEnable, POINT ptTether); | 
|  | HRESULT WINAPI DwmShowContact (DWORD dwPointerID, enum DWM_SHOWCONTACT eShowContact); | 
|  | #endif | 
|  | #if NTDDI_VERSION >= NTDDI_WIN10_RS4 | 
|  | HRESULT WINAPI DwmGetUnmetTabRequirements (HWND appWindow, enum DWM_TAB_WINDOW_REQUIREMENTS *value); | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  | #endif |