/* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __WINE_DWMAPI_H #define __WINE_DWMAPI_H #include "wtypes.h" #include "uxtheme.h" #ifdef __cplusplus extern "C" { #endif #ifndef DWMAPI # define DWMAPI STDAPI # define DWMAPI_(type) STDAPI_(type) #endif DECLARE_HANDLE(HTHUMBNAIL); typedef HTHUMBNAIL *PHTHUMBNAIL; #include static const UINT c_DwmMaxQueuedBuffers = 8; static const UINT c_DwmMaxMonitors = 16; static const UINT c_DwmMaxAdapters = 16; typedef ULONGLONG DWM_FRAME_COUNT; typedef ULONGLONG QPC_TIME; enum DWMWINDOWATTRIBUTE { DWMWA_NCRENDERING_ENABLED = 1, DWMWA_NCRENDERING_POLICY, DWMWA_TRANSITIONS_FORCEDISABLED, DWMWA_ALLOW_NCPAINT, DWMWA_CAPTION_BUTTON_BOUNDS, DWMWA_NONCLIENT_RTL_LAYOUT, DWMWA_FORCE_ICONIC_REPRESENTATION, DWMWA_FLIP3D_POLICY, DWMWA_EXTENDED_FRAME_BOUNDS, DWMWA_HAS_ICONIC_BITMAP, DWMWA_DISALLOW_PEEK, DWMWA_EXCLUDED_FROM_PEEK, DWMWA_CLOAK, DWMWA_CLOAKED, DWMWA_FREEZE_REPRESENTATION, DWMWA_LAST }; enum DWMNCRENDERINGPOLICY { DWMNCRP_USEWINDOWSTYLE, DWMNCRP_DISABLED, DWMNCRP_ENABLED, DWMNCRP_LAST }; enum DWMFLIP3DWINDOWPOLICY { DWMFLIP3D_DEFAULT, DWMFLIP3D_EXCLUDEBELOW, DWMFLIP3D_EXCLUDEABOVE, DWMFLIP3D_LAST }; typedef enum _DWM_SOURCE_FRAME_SAMPLING { DWM_SOURCE_FRAME_SAMPLING_POINT, DWM_SOURCE_FRAME_SAMPLING_COVERAGE, DWM_SOURCE_FRAME_SAMPLING_LAST } DWM_SOURCE_FRAME_SAMPLING; typedef struct _UNSIGNED_RATIO { UINT32 uiNumerator; UINT32 uiDenominator; } UNSIGNED_RATIO; typedef struct _DWM_TIMING_INFO { UINT32 cbSize; UNSIGNED_RATIO rateRefresh; QPC_TIME qpcRefreshPeriod; UNSIGNED_RATIO rateCompose; QPC_TIME qpcVBlank; DWM_FRAME_COUNT cRefresh; UINT cDXRefresh; QPC_TIME qpcCompose; DWM_FRAME_COUNT cFrame; UINT cDXPresent; DWM_FRAME_COUNT cRefreshFrame; DWM_FRAME_COUNT cFrameSubmitted; UINT cDXPresentSubmitted; DWM_FRAME_COUNT cFrameConfirmed; UINT cDXPresentConfirmed; DWM_FRAME_COUNT cRefreshConfirmed; UINT cDXRefreshConfirmed; DWM_FRAME_COUNT cFramesLate; UINT cFramesOutstanding; DWM_FRAME_COUNT cFrameDisplayed; QPC_TIME qpcFrameDisplayed; DWM_FRAME_COUNT cRefreshFrameDisplayed; DWM_FRAME_COUNT cFrameComplete; QPC_TIME qpcFrameComplete; DWM_FRAME_COUNT cFramePending; QPC_TIME qpcFramePending; DWM_FRAME_COUNT cFramesDisplayed; DWM_FRAME_COUNT cFramesComplete; DWM_FRAME_COUNT cFramesPending; DWM_FRAME_COUNT cFramesAvailable; DWM_FRAME_COUNT cFramesDropped; DWM_FRAME_COUNT cFramesMissed; DWM_FRAME_COUNT cRefreshNextDisplayed; DWM_FRAME_COUNT cRefreshNextPresented; DWM_FRAME_COUNT cRefreshesDisplayed; DWM_FRAME_COUNT cRefreshesPresented; DWM_FRAME_COUNT cRefreshStarted; ULONGLONG cPixelsReceived; ULONGLONG cPixelsDrawn; DWM_FRAME_COUNT cBuffersEmpty; } DWM_TIMING_INFO; typedef struct _MilMatrix3x2D { DOUBLE S_11; DOUBLE S_12; DOUBLE S_21; DOUBLE S_22; DOUBLE DX; DOUBLE DY; } MilMatrix3x2D; #define DWM_FRAME_DURATION_DEFAULT -1 #define DWM_EC_DISABLECOMPOSITION 0 #define DWM_EC_ENABLECOMPOSITION 1 #define DWM_BB_ENABLE 0x00000001 #define DWM_BB_BLURREGION 0x00000002 #define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004 typedef struct _DWM_BLURBEHIND { DWORD dwFlags; BOOL fEnable; HRGN hRgnBlur; BOOL fTransitionOnMaximized; } DWM_BLURBEHIND, *PDWM_BLURBEHIND; #define DWM_SIT_DISPLAYFRAME 0x00000001 #define DWM_CLOAKED_APP 0x00000001 #define DWM_CLOAKED_SHELL 0x00000002 #define DWM_CLOAKED_INHERITED 0x00000004 #define DWM_TNP_RECTDESTINATION 0x00000001 #define DWM_TNP_RECTSOURCE 0x00000002 #define DWM_TNP_OPACITY 0x00000004 #define DWM_TNP_VISIBLE 0x00000008 #define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010 typedef struct _DWM_THUMBNAIL_PROPERTIES { DWORD dwFlags; RECT rcDestination; RECT rcSource; BYTE opacity; BOOL fVisible; BOOL fSourceClientAreaOnly; } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES; typedef struct _DWM_PRESENT_PARAMETERS { UINT32 cbSize; BOOL fQueue; DWM_FRAME_COUNT cRefreshStart; UINT cBuffer; BOOL fUseSourceRate; UNSIGNED_RATIO rateSource; UINT cRefreshesPerFrame; DWM_SOURCE_FRAME_SAMPLING eSampling; } DWM_PRESENT_PARAMETERS; #include DWMAPI DwmAttachMilContent(HWND); DWMAPI_(BOOL) DwmDefWindowProc(HWND, UINT, WPARAM, LPARAM, LRESULT*); DWMAPI DwmDetachMilContent(HWND); DWMAPI DwmEnableBlurBehindWindow(HWND, const DWM_BLURBEHIND *); DWMAPI DwmEnableComposition(UINT); DWMAPI DwmEnableMMCSS(BOOL); DWMAPI DwmExtendFrameIntoClientArea(HWND,const MARGINS*); DWMAPI DwmFlush(void); DWMAPI DwmGetColorizationColor(DWORD*,BOOL); DWMAPI DwmGetCompositionTimingInfo(HWND,DWM_TIMING_INFO*); DWMAPI DwmGetGraphicsStreamClient(UINT, UUID *); DWMAPI DwmGetGraphicsStreamTransformHint(UINT, MilMatrix3x2D *); DWMAPI DwmGetTransportAttributes(BOOL*, BOOL*, DWORD*); DWMAPI DwmGetWindowAttribute(HWND, DWORD, PVOID, DWORD); DWMAPI DwmInvalidateIconicBitmaps(HWND); DWMAPI DwmIsCompositionEnabled(BOOL*); DWMAPI DwmRegisterThumbnail(HWND, HWND, PHTHUMBNAIL); DWMAPI DwmSetIconicLivePreviewBitmap(HWND, HBITMAP, POINT*, DWORD); DWMAPI DwmSetIconicThumbnail(HWND, HBITMAP, DWORD); DWMAPI DwmSetPresentParameters(HWND, DWM_PRESENT_PARAMETERS *); DWMAPI DwmSetWindowAttribute(HWND, DWORD, LPCVOID, DWORD); DWMAPI DwmUnregisterThumbnail(HTHUMBNAIL); DWMAPI DwmUpdateThumbnailProperties(HTHUMBNAIL, const DWM_THUMBNAIL_PROPERTIES *); #ifdef __cplusplus } #endif #endif /* __WINE_DWMAPI_H */