[SDK][NDK] Move SYSTEM_POWER_INFORMATION to ntpoapi.h (#869)
[reactos.git] / sdk / include / psdk / dwmapi.h
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.
6 *
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.
11 *
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
15 */
16
17 #ifndef __WINE_DWMAPI_H
18 #define __WINE_DWMAPI_H
19
20 #include "wtypes.h"
21 #include "uxtheme.h"
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #ifndef DWMAPI
28 # define DWMAPI STDAPI
29 # define DWMAPI_(type) STDAPI_(type)
30 #endif
31
32 DECLARE_HANDLE(HTHUMBNAIL);
33 typedef HTHUMBNAIL *PHTHUMBNAIL;
34
35 #include <pshpack1.h>
36
37 typedef ULONGLONG DWM_FRAME_COUNT;
38 typedef ULONGLONG QPC_TIME;
39
40 typedef struct _UNSIGNED_RATIO {
41 UINT32 uiNumerator;
42 UINT32 uiDenominator;
43 } UNSIGNED_RATIO;
44
45 typedef struct _DWM_TIMING_INFO {
46 UINT32 cbSize;
47 UNSIGNED_RATIO rateRefresh;
48 QPC_TIME qpcRefreshPeriod;
49 UNSIGNED_RATIO rateCompose;
50 QPC_TIME qpcVBlank;
51 DWM_FRAME_COUNT cRefresh;
52 UINT cDXRefresh;
53 QPC_TIME qpcCompose;
54 DWM_FRAME_COUNT cFrame;
55 UINT cDXPresent;
56 DWM_FRAME_COUNT cRefreshFrame;
57 DWM_FRAME_COUNT cFrameSubmitted;
58 UINT cDXPresentSubmitted;
59 DWM_FRAME_COUNT cFrameConfirmed;
60 UINT cDXPresentConfirmed;
61 DWM_FRAME_COUNT cRefreshConfirmed;
62 UINT cDXRefreshConfirmed;
63 DWM_FRAME_COUNT cFramesLate;
64 UINT cFramesOutstanding;
65 DWM_FRAME_COUNT cFrameDisplayed;
66 QPC_TIME qpcFrameDisplayed;
67 DWM_FRAME_COUNT cRefreshFrameDisplayed;
68 DWM_FRAME_COUNT cFrameComplete;
69 QPC_TIME qpcFrameComplete;
70 DWM_FRAME_COUNT cFramePending;
71 QPC_TIME qpcFramePending;
72 DWM_FRAME_COUNT cFramesDisplayed;
73 DWM_FRAME_COUNT cFramesComplete;
74 DWM_FRAME_COUNT cFramesPending;
75 DWM_FRAME_COUNT cFramesAvailable;
76 DWM_FRAME_COUNT cFramesDropped;
77 DWM_FRAME_COUNT cFramesMissed;
78 DWM_FRAME_COUNT cRefreshNextDisplayed;
79 DWM_FRAME_COUNT cRefreshNextPresented;
80 DWM_FRAME_COUNT cRefreshesDisplayed;
81 DWM_FRAME_COUNT cRefreshesPresented;
82 DWM_FRAME_COUNT cRefreshStarted;
83 ULONGLONG cPixelsReceived;
84 ULONGLONG cPixelsDrawn;
85 DWM_FRAME_COUNT cBuffersEmpty;
86 } DWM_TIMING_INFO;
87
88 typedef struct _MilMatrix3x2D
89 {
90 DOUBLE S_11;
91 DOUBLE S_12;
92 DOUBLE S_21;
93 DOUBLE S_22;
94 DOUBLE DX;
95 DOUBLE DY;
96 } MilMatrix3x2D;
97
98 #define DWM_BB_ENABLE 0x00000001
99 #define DWM_BB_BLURREGION 0x00000002
100 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004
101
102 typedef struct _DWM_BLURBEHIND
103 {
104 DWORD dwFlags;
105 BOOL fEnable;
106 HRGN hRgnBlur;
107 BOOL fTransitionOnMaximized;
108 } DWM_BLURBEHIND, *PDWM_BLURBEHIND;
109
110 typedef struct _DWM_THUMBNAIL_PROPERTIES
111 {
112 DWORD dwFlags;
113 RECT rcDestination;
114 RECT rcSource;
115 BYTE opacity;
116 BOOL fVisible;
117 BOOL fSourceClientAreaOnly;
118 } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES;
119
120 #include <poppack.h>
121
122 DWMAPI DwmDefWindowProc(HWND, UINT, WPARAM, LPARAM, LRESULT*);
123 DWMAPI DwmEnableBlurBehindWindow(HWND, const DWM_BLURBEHIND *);
124 DWMAPI DwmEnableComposition(UINT);
125 DWMAPI DwmEnableMMCSS(BOOL);
126 DWMAPI DwmExtendFrameIntoClientArea(HWND,const MARGINS*);
127 DWMAPI DwmGetColorizationColor(DWORD*,BOOL);
128 DWMAPI DwmGetCompositionTimingInfo(HWND,DWM_TIMING_INFO*);
129 DWMAPI DwmInvalidateIconicBitmaps(HWND);
130 DWMAPI DwmIsCompositionEnabled(BOOL*);
131 DWMAPI DwmRegisterThumbnail(HWND, HWND, PHTHUMBNAIL);
132 DWMAPI DwmSetWindowAttribute(HWND, DWORD, LPCVOID, DWORD);
133 DWMAPI DwmUnregisterThumbnail(HTHUMBNAIL);
134 DWMAPI DwmUpdateThumbnailProperties(HTHUMBNAIL, const DWM_THUMBNAIL_PROPERTIES *);
135
136 #ifdef __cplusplus
137 }
138 #endif
139
140 #endif /* __WINE_DWMAPI_H */