user32: Also disable the DC if the window is destroyed without a ReleaseDC.
[wine.git] / include / dwmapi.h
blobb2f39deae552a379076e4cc8355fd77c2e34f9a9
1 /*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 #ifndef __WINE_DWMAPI_H
18 #define __WINE_DWMAPI_H
20 #include "wtypes.h"
21 #include "uxtheme.h"
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
27 #ifndef DWMAPI
28 # define DWMAPI STDAPI
29 # define DWMAPI_(type) STDAPI_(type)
30 #endif
32 DECLARE_HANDLE(HTHUMBNAIL);
33 typedef HTHUMBNAIL *PHTHUMBNAIL;
35 #include <pshpack1.h>
37 typedef ULONGLONG DWM_FRAME_COUNT;
38 typedef ULONGLONG QPC_TIME;
40 typedef enum _DWM_SOURCE_FRAME_SAMPLING {
41 DWM_SOURCE_FRAME_SAMPLING_POINT,
42 DWM_SOURCE_FRAME_SAMPLING_COVERAGE,
43 DWM_SOURCE_FRAME_SAMPLING_LAST
44 } DWM_SOURCE_FRAME_SAMPLING;
46 typedef struct _UNSIGNED_RATIO {
47 UINT32 uiNumerator;
48 UINT32 uiDenominator;
49 } UNSIGNED_RATIO;
51 typedef struct _DWM_TIMING_INFO {
52 UINT32 cbSize;
53 UNSIGNED_RATIO rateRefresh;
54 QPC_TIME qpcRefreshPeriod;
55 UNSIGNED_RATIO rateCompose;
56 QPC_TIME qpcVBlank;
57 DWM_FRAME_COUNT cRefresh;
58 UINT cDXRefresh;
59 QPC_TIME qpcCompose;
60 DWM_FRAME_COUNT cFrame;
61 UINT cDXPresent;
62 DWM_FRAME_COUNT cRefreshFrame;
63 DWM_FRAME_COUNT cFrameSubmitted;
64 UINT cDXPresentSubmitted;
65 DWM_FRAME_COUNT cFrameConfirmed;
66 UINT cDXPresentConfirmed;
67 DWM_FRAME_COUNT cRefreshConfirmed;
68 UINT cDXRefreshConfirmed;
69 DWM_FRAME_COUNT cFramesLate;
70 UINT cFramesOutstanding;
71 DWM_FRAME_COUNT cFrameDisplayed;
72 QPC_TIME qpcFrameDisplayed;
73 DWM_FRAME_COUNT cRefreshFrameDisplayed;
74 DWM_FRAME_COUNT cFrameComplete;
75 QPC_TIME qpcFrameComplete;
76 DWM_FRAME_COUNT cFramePending;
77 QPC_TIME qpcFramePending;
78 DWM_FRAME_COUNT cFramesDisplayed;
79 DWM_FRAME_COUNT cFramesComplete;
80 DWM_FRAME_COUNT cFramesPending;
81 DWM_FRAME_COUNT cFramesAvailable;
82 DWM_FRAME_COUNT cFramesDropped;
83 DWM_FRAME_COUNT cFramesMissed;
84 DWM_FRAME_COUNT cRefreshNextDisplayed;
85 DWM_FRAME_COUNT cRefreshNextPresented;
86 DWM_FRAME_COUNT cRefreshesDisplayed;
87 DWM_FRAME_COUNT cRefreshesPresented;
88 DWM_FRAME_COUNT cRefreshStarted;
89 ULONGLONG cPixelsReceived;
90 ULONGLONG cPixelsDrawn;
91 DWM_FRAME_COUNT cBuffersEmpty;
92 } DWM_TIMING_INFO;
94 typedef struct _MilMatrix3x2D
96 DOUBLE S_11;
97 DOUBLE S_12;
98 DOUBLE S_21;
99 DOUBLE S_22;
100 DOUBLE DX;
101 DOUBLE DY;
102 } MilMatrix3x2D;
104 #define DWM_BB_ENABLE 0x00000001
105 #define DWM_BB_BLURREGION 0x00000002
106 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
108 typedef struct _DWM_BLURBEHIND
110 DWORD dwFlags;
111 BOOL fEnable;
112 HRGN hRgnBlur;
113 BOOL fTransitionOnMaximized;
114 } DWM_BLURBEHIND, *PDWM_BLURBEHIND;
116 typedef struct _DWM_THUMBNAIL_PROPERTIES
118 DWORD dwFlags;
119 RECT rcDestination;
120 RECT rcSource;
121 BYTE opacity;
122 BOOL fVisible;
123 BOOL fSourceClientAreaOnly;
124 } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
126 typedef struct _DWM_PRESENT_PARAMETERS {
127 UINT32 cbSize;
128 BOOL fQueue;
129 DWM_FRAME_COUNT cRefreshStart;
130 UINT cBuffer;
131 BOOL fUseSourceRate;
132 UNSIGNED_RATIO rateSource;
133 UINT cRefreshesPerFrame;
134 DWM_SOURCE_FRAME_SAMPLING eSampling;
135 } DWM_PRESENT_PARAMETERS;
137 #include <poppack.h>
139 DWMAPI_(BOOL) DwmDefWindowProc(HWND, UINT, WPARAM, LPARAM, LRESULT*);
140 DWMAPI DwmEnableBlurBehindWindow(HWND, const DWM_BLURBEHIND *);
141 DWMAPI DwmEnableComposition(UINT);
142 DWMAPI DwmEnableMMCSS(BOOL);
143 DWMAPI DwmExtendFrameIntoClientArea(HWND,const MARGINS*);
144 DWMAPI DwmGetColorizationColor(DWORD*,BOOL);
145 DWMAPI DwmGetCompositionTimingInfo(HWND,DWM_TIMING_INFO*);
146 DWMAPI DwmInvalidateIconicBitmaps(HWND);
147 DWMAPI DwmIsCompositionEnabled(BOOL*);
148 DWMAPI DwmRegisterThumbnail(HWND, HWND, PHTHUMBNAIL);
149 DWMAPI DwmSetPresentParameters(HWND, DWM_PRESENT_PARAMETERS *);
150 DWMAPI DwmSetWindowAttribute(HWND, DWORD, LPCVOID, DWORD);
151 DWMAPI DwmUnregisterThumbnail(HTHUMBNAIL);
152 DWMAPI DwmUpdateThumbnailProperties(HTHUMBNAIL, const DWM_THUMBNAIL_PROPERTIES *);
154 #ifdef __cplusplus
156 #endif
158 #endif /* __WINE_DWMAPI_H */