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
28 # define DWMAPI STDAPI
29 # define DWMAPI_(type) STDAPI_(type)
32 DECLARE_HANDLE(HTHUMBNAIL
);
33 typedef HTHUMBNAIL
*PHTHUMBNAIL
;
37 static const UINT c_DwmMaxQueuedBuffers
= 8;
38 static const UINT c_DwmMaxMonitors
= 16;
39 static const UINT c_DwmMaxAdapters
= 16;
41 typedef ULONGLONG DWM_FRAME_COUNT
;
42 typedef ULONGLONG QPC_TIME
;
44 enum DWMWINDOWATTRIBUTE
{
45 DWMWA_NCRENDERING_ENABLED
= 1,
46 DWMWA_NCRENDERING_POLICY
,
47 DWMWA_TRANSITIONS_FORCEDISABLED
,
49 DWMWA_CAPTION_BUTTON_BOUNDS
,
50 DWMWA_NONCLIENT_RTL_LAYOUT
,
51 DWMWA_FORCE_ICONIC_REPRESENTATION
,
53 DWMWA_EXTENDED_FRAME_BOUNDS
,
54 DWMWA_HAS_ICONIC_BITMAP
,
56 DWMWA_EXCLUDED_FROM_PEEK
,
59 DWMWA_FREEZE_REPRESENTATION
,
63 enum DWMNCRENDERINGPOLICY
{
64 DWMNCRP_USEWINDOWSTYLE
,
70 enum DWMFLIP3DWINDOWPOLICY
{
72 DWMFLIP3D_EXCLUDEBELOW
,
73 DWMFLIP3D_EXCLUDEABOVE
,
77 typedef enum _DWM_SOURCE_FRAME_SAMPLING
{
78 DWM_SOURCE_FRAME_SAMPLING_POINT
,
79 DWM_SOURCE_FRAME_SAMPLING_COVERAGE
,
80 DWM_SOURCE_FRAME_SAMPLING_LAST
81 } DWM_SOURCE_FRAME_SAMPLING
;
83 typedef struct _UNSIGNED_RATIO
{
88 typedef struct _DWM_TIMING_INFO
{
90 UNSIGNED_RATIO rateRefresh
;
91 QPC_TIME qpcRefreshPeriod
;
92 UNSIGNED_RATIO rateCompose
;
94 DWM_FRAME_COUNT cRefresh
;
97 DWM_FRAME_COUNT cFrame
;
99 DWM_FRAME_COUNT cRefreshFrame
;
100 DWM_FRAME_COUNT cFrameSubmitted
;
101 UINT cDXPresentSubmitted
;
102 DWM_FRAME_COUNT cFrameConfirmed
;
103 UINT cDXPresentConfirmed
;
104 DWM_FRAME_COUNT cRefreshConfirmed
;
105 UINT cDXRefreshConfirmed
;
106 DWM_FRAME_COUNT cFramesLate
;
107 UINT cFramesOutstanding
;
108 DWM_FRAME_COUNT cFrameDisplayed
;
109 QPC_TIME qpcFrameDisplayed
;
110 DWM_FRAME_COUNT cRefreshFrameDisplayed
;
111 DWM_FRAME_COUNT cFrameComplete
;
112 QPC_TIME qpcFrameComplete
;
113 DWM_FRAME_COUNT cFramePending
;
114 QPC_TIME qpcFramePending
;
115 DWM_FRAME_COUNT cFramesDisplayed
;
116 DWM_FRAME_COUNT cFramesComplete
;
117 DWM_FRAME_COUNT cFramesPending
;
118 DWM_FRAME_COUNT cFramesAvailable
;
119 DWM_FRAME_COUNT cFramesDropped
;
120 DWM_FRAME_COUNT cFramesMissed
;
121 DWM_FRAME_COUNT cRefreshNextDisplayed
;
122 DWM_FRAME_COUNT cRefreshNextPresented
;
123 DWM_FRAME_COUNT cRefreshesDisplayed
;
124 DWM_FRAME_COUNT cRefreshesPresented
;
125 DWM_FRAME_COUNT cRefreshStarted
;
126 ULONGLONG cPixelsReceived
;
127 ULONGLONG cPixelsDrawn
;
128 DWM_FRAME_COUNT cBuffersEmpty
;
131 typedef struct _MilMatrix3x2D
141 #define DWM_FRAME_DURATION_DEFAULT -1
143 #define DWM_EC_DISABLECOMPOSITION 0
144 #define DWM_EC_ENABLECOMPOSITION 1
146 #define DWM_BB_ENABLE 0x00000001
147 #define DWM_BB_BLURREGION 0x00000002
148 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
150 typedef struct _DWM_BLURBEHIND
155 BOOL fTransitionOnMaximized
;
156 } DWM_BLURBEHIND
, *PDWM_BLURBEHIND
;
158 #define DWM_SIT_DISPLAYFRAME 0x00000001
160 #define DWM_CLOAKED_APP 0x00000001
161 #define DWM_CLOAKED_SHELL 0x00000002
162 #define DWM_CLOAKED_INHERITED 0x00000004
164 #define DWM_TNP_RECTDESTINATION 0x00000001
165 #define DWM_TNP_RECTSOURCE 0x00000002
166 #define DWM_TNP_OPACITY 0x00000004
167 #define DWM_TNP_VISIBLE 0x00000008
168 #define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010
170 typedef struct _DWM_THUMBNAIL_PROPERTIES
177 BOOL fSourceClientAreaOnly
;
178 } DWM_THUMBNAIL_PROPERTIES
, *PDWM_THUMBNAIL_PROPERTIES
;
180 typedef struct _DWM_PRESENT_PARAMETERS
{
183 DWM_FRAME_COUNT cRefreshStart
;
186 UNSIGNED_RATIO rateSource
;
187 UINT cRefreshesPerFrame
;
188 DWM_SOURCE_FRAME_SAMPLING eSampling
;
189 } DWM_PRESENT_PARAMETERS
;
193 DWMAPI
DwmAttachMilContent(HWND
);
194 DWMAPI_(BOOL
) DwmDefWindowProc(HWND
, UINT
, WPARAM
, LPARAM
, LRESULT
*);
195 DWMAPI
DwmDetachMilContent(HWND
);
196 DWMAPI
DwmEnableBlurBehindWindow(HWND
, const DWM_BLURBEHIND
*);
197 DWMAPI
DwmEnableComposition(UINT
);
198 DWMAPI
DwmEnableMMCSS(BOOL
);
199 DWMAPI
DwmExtendFrameIntoClientArea(HWND
,const MARGINS
*);
200 DWMAPI
DwmFlush(void);
201 DWMAPI
DwmGetColorizationColor(DWORD
*, BOOL
*);
202 DWMAPI
DwmGetCompositionTimingInfo(HWND
,DWM_TIMING_INFO
*);
203 DWMAPI
DwmGetGraphicsStreamClient(UINT
, UUID
*);
204 DWMAPI
DwmGetGraphicsStreamTransformHint(UINT
, MilMatrix3x2D
*);
205 DWMAPI
DwmGetTransportAttributes(BOOL
*, BOOL
*, DWORD
*);
206 DWMAPI
DwmGetWindowAttribute(HWND
, DWORD
, PVOID
, DWORD
);
207 DWMAPI
DwmInvalidateIconicBitmaps(HWND
);
208 DWMAPI
DwmIsCompositionEnabled(BOOL
*);
209 DWMAPI
DwmRegisterThumbnail(HWND
, HWND
, PHTHUMBNAIL
);
210 DWMAPI
DwmSetIconicLivePreviewBitmap(HWND
, HBITMAP
, POINT
*, DWORD
);
211 DWMAPI
DwmSetIconicThumbnail(HWND
, HBITMAP
, DWORD
);
212 DWMAPI
DwmSetPresentParameters(HWND
, DWM_PRESENT_PARAMETERS
*);
213 DWMAPI
DwmSetWindowAttribute(HWND
, DWORD
, LPCVOID
, DWORD
);
214 DWMAPI
DwmUnregisterThumbnail(HTHUMBNAIL
);
215 DWMAPI
DwmUpdateThumbnailProperties(HTHUMBNAIL
, const DWM_THUMBNAIL_PROPERTIES
*);
221 #endif /* __WINE_DWMAPI_H */