dwmapi.h 8.7 KB

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