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 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
{
51 typedef struct _DWM_TIMING_INFO
{
53 UNSIGNED_RATIO rateRefresh
;
54 QPC_TIME qpcRefreshPeriod
;
55 UNSIGNED_RATIO rateCompose
;
57 DWM_FRAME_COUNT cRefresh
;
60 DWM_FRAME_COUNT cFrame
;
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
;
94 typedef struct _MilMatrix3x2D
104 #define DWM_BB_ENABLE 0x00000001
105 #define DWM_BB_BLURREGION 0x00000002
106 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
108 typedef struct _DWM_BLURBEHIND
113 BOOL fTransitionOnMaximized
;
114 } DWM_BLURBEHIND
, *PDWM_BLURBEHIND
;
116 typedef struct _DWM_THUMBNAIL_PROPERTIES
123 BOOL fSourceClientAreaOnly
;
124 } DWM_THUMBNAIL_PROPERTIES
, *PDWM_THUMBNAIL_PROPERTIES
;
126 typedef struct _DWM_PRESENT_PARAMETERS
{
129 DWM_FRAME_COUNT cRefreshStart
;
132 UNSIGNED_RATIO rateSource
;
133 UINT cRefreshesPerFrame
;
134 DWM_SOURCE_FRAME_SAMPLING eSampling
;
135 } DWM_PRESENT_PARAMETERS
;
139 DWMAPI
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
*);
158 #endif /* __WINE_DWMAPI_H */