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 */ 141