Hi,

this patch resolves fix-mes, adds win 7/8 APIs, fixes alignement issue
of structures, and adds winapifamily check.

Ok for apply?

Regards,
Kai
From edde5392f4aca53e6378efed114a4f56952bef04 Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktiet...@googlemail.com>
Date: Sat, 23 Aug 2014 21:25:39 +0200
Subject: Add winapifamily-support, correct alignment of structures, add win 7
 & 8 specific API.

---
 mingw-w64-headers/include/dwmapi.h |  386 ++++++++++++++++++------------------
 1 files changed, 194 insertions(+), 192 deletions(-)

diff --git a/mingw-w64-headers/include/dwmapi.h 
b/mingw-w64-headers/include/dwmapi.h
index 6c9cd37..7ea8385 100644
--- a/mingw-w64-headers/include/dwmapi.h
+++ b/mingw-w64-headers/include/dwmapi.h
@@ -1,83 +1,127 @@
-/*
- * dwmapi.h
- *
- * Some dwmapi.dll exported functions such as
- *   DwmFlush
- *   DwmAttachMilContent
- *   DwmDetachMilContent
- * are not declared in this header for not being documented by Microsoft
- *
+/**
+ * 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 __WINAPI_DWMAPI_H
-#define __WINAPI_DWMAPI_H
+#ifndef _DWMAPI_H_
+#define _DWMAPI_H_
 
-#include <wtypes.h>
-
-/* for MARGINS structure declaration.  */
-#include <uxtheme.h>
-
-/*
- * This API is available only on Vista+ versions. It's not guarded by version 
check
- * because that would cause problems with Mozilla code (and MSVC doesn't seem 
to be
- * doing that as well).
- */
+#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
 
-/* FIXME: move to winuser.h */
-/* DWM messages.  */
-#define WM_DWMCOMPOSITIONCHANGED 0x031E
-#define WM_DWMNCRENDERINGCHANGED 0x031F
-#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
-#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
-/* FIXME end */
+#include <wtypes.h>
+#include <uxtheme.h>
 
+#include <pshpack1.h>
 
+  typedef ULONGLONG DWM_FRAME_COUNT;
+  typedef ULONGLONG QPC_TIME;
 
-#define DWM_EC_DISABLECOMPOSITION 0
-#define DWM_EC_ENABLECOMPOSITION 1
+  typedef HANDLE HTHUMBNAIL;
+  typedef HTHUMBNAIL *PHTHUMBNAIL;
 
-#define DWM_BB_ENABLE     0x00000001
-#define DWM_BB_BLURREGION 0x00000002
-#define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
+  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_LAST
+  };
 
-typedef struct _DWM_BLURBEHIND {
-    DWORD dwFlags;
-    BOOL fEnable;
-    HRGN hRgnBlur;
-    BOOL fTransitionOnMaximized;
-} DWM_BLURBEHIND, *PDWM_BLURBEHIND;
+  enum DWMFLIP3DWINDOWPOLICY {
+    DWMFLIP3D_DEFAULT,
+    DWMFLIP3D_EXCLUDEBELOW,
+    DWMFLIP3D_EXCLUDEABOVE,
+    DWMFLIP3D_LAST
+  };
 
-typedef struct _UNSIGNED_RATIO {
-    UINT32 uiNumerator;
-    UINT32 uiDenominator;
-} UNSIGNED_RATIO;
+  enum DWMNCRENDERINGPOLICY {
+    DWMNCRP_USEWINDOWSTYLE,
+    DWMNCRP_DISABLED,
+    DWMNCRP_ENABLED,
+    DWMNCRP_LAST
+  };
+
+#if NTDDI_VERSION >= 0x06020000
+  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
 
-typedef enum _DWM_SOURCE_FRAME_SAMPLING {
-    DWM_SOURCE_FRAME_SAMPLING_POINT = 1,
+  typedef enum {
+    DWM_SOURCE_FRAME_SAMPLING_POINT,
     DWM_SOURCE_FRAME_SAMPLING_COVERAGE,
     DWM_SOURCE_FRAME_SAMPLING_LAST
-} DWM_SOURCE_FRAME_SAMPLING;
+  } DWM_SOURCE_FRAME_SAMPLING;
 
-typedef ULONGLONG DWM_FRAME_COUNT;
+  enum DWMTRANSITION_OWNEDWINDOW_TARGET {
+    DWMTRANSITION_OWNEDWINDOW_NULL = -1,
+    DWMTRANSITION_OWNEDWINDOW_REPOSITION = 0,
+  };
 
-typedef struct _DWM_PRESENT_PARAMETERS {
-    UINT32 cbSize;
-    BOOL fQueue;
-    DWM_FRAME_COUNT cRefreshStart;
-    UINT cBuffer;
-    BOOL fUseSourceRate;
-    UNSIGNED_RATIO rateSource;
-    UINT cRefreshesPerFrame;
-    DWM_SOURCE_FRAME_SAMPLING eSampling;
-} DWM_PRESENT_PARAMETERS;
+  typedef struct _DWM_BLURBEHIND {
+    DWORD dwFlags;
+    WINBOOL fEnable;
+    HRGN hRgnBlur;
+    WINBOOL fTransitionOnMaximized;
+  } DWM_BLURBEHIND, *PDWM_BLURBEHIND;
 
-typedef ULONGLONG QPC_TIME;
+  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 _DWM_TIMING_INFO {
+  typedef struct _UNSIGNED_RATIO {
+    UINT32 uiNumerator;
+    UINT32 uiDenominator;
+  } UNSIGNED_RATIO;
+
+  typedef struct _DWM_TIMING_INFO {
     UINT32 cbSize;
     UNSIGNED_RATIO rateRefresh;
     QPC_TIME qpcRefreshPeriod;
@@ -118,145 +162,103 @@ typedef struct _DWM_TIMING_INFO {
     ULONGLONG cPixelsReceived;
     ULONGLONG cPixelsDrawn;
     DWM_FRAME_COUNT cBuffersEmpty;
-} DWM_TIMING_INFO;
+  } DWM_TIMING_INFO;
 
-typedef 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_LAST
-} DWMWINDOWATTRIBUTE;
+  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
 
-#define DWM_TNP_RECTDESTINATION 0x00000001
-#define DWM_TNP_RECTSOURCE      0x00000002
-#define DWM_TNP_OPACITY         0x00000004
-#define DWM_TNP_VISIBLE         0x00000008
-#define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010
+#ifndef MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF
+#define MILCORE_MIL_MATRIX3X2D_COMPAT_TYPEDEF
+  typedef MilMatrix3x2D MIL_MATRIX3X2D;
+#endif
 
-typedef struct _DWM_THUMBNAIL_PROPERTIES {
-    DWORD dwFlags;
-    RECT rcDestination;
-    RECT rcSource;
-    BYTE opacity;
-    BOOL fVisible;
-    BOOL fSourceClientAreaOnly;
-} DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
+#include <poppack.h>
 
-typedef enum _DWMFLIP3DWINDOWPOLICY {
-    DWMFLIP3D_DEFAULT,
-    DWMFLIP3D_EXCLUDEBELOW,
-    DWMFLIP3D_EXCLUDEABOVE
-} DWMFLIP3DWINDOWPOLICY;
+#define DWM_BB_ENABLE 0x1
+#define DWM_BB_BLURREGION 0x2
+#define DWM_BB_TRANSITIONONMAXIMIZED 0x4
 
-typedef enum _DWMNCRENDERINGPOLICY {
-    DWMNCRP_USEWINDOWSTYLE,
-    DWMNCRP_DISABLED,
-    DWMNCRP_ENABLED,
-    DWMNCRP_LAST
-} DWMNCRENDERINGPOLICY;
-
-typedef HANDLE HTHUMBNAIL;
-typedef HTHUMBNAIL* PHTHUMBNAIL;
-
-BOOL 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(
-    BOOL fEnableMMCSS
-);
-
-HRESULT WINAPI DwmExtendFrameIntoClientArea(
-    HWND hWnd,
-    const MARGINS *pMarInset
-);
-
-HRESULT WINAPI DwmGetColorizationColor(
-    DWORD *pcrColorization,
-    BOOL *pfOpaqueBlend
-);
-
-HRESULT WINAPI DwmGetCompositionTimingInfo(
-    HWND hwnd,
-    DWM_TIMING_INFO *pTimingInfo
-);
-
-HRESULT WINAPI DwmGetWindowAttribute(
-    HWND hwnd,
-    DWORD dwAttribute,
-    PVOID pvAttribute,
-    DWORD cbAttribute
-);
-
-HRESULT WINAPI DwmIsCompositionEnabled(
-    BOOL *pfEnabled
-);
-
-HRESULT WINAPI DwmModifyPreviousDxFrameDuration(
-    HWND hwnd,
-    INT cRefreshes,
-    BOOL 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
-);
+#define DWM_CLOAKED_APP 0x1
+#define DWM_CLOAKED_SHELL 0x2
+#define DWM_CLOAKED_INHERITED 0x4
 
-#ifdef __cplusplus
-}
+#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
 
-#endif /* __WINAPI_DWMAPI_H */
+  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 >= 0x06020000
+  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
 
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif
-- 
1.7.9

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to