/* * dwmapi.h * * Some dwmapi.dll exported functions such as * DwmFlush * DwmAttachMilContent * DwmDetachMilContent * are not declared in this header for not being documented by Microsoft * */ #ifndef __WINAPI_DWMAPI_H #define __WINAPI_DWMAPI_H #include /* for MARGINS structure declaration. */ #include /* * This API is available only on Vista+ versions. It's not guarded by version check * because that would cause problems with Mozilla code (and MSVC doesn't seem to be * doing that as well). */ #ifdef __cplusplus extern "C" { #endif /* FIXME: move to winuser.h */ /* DWM messages. */ #define WM_DWMCOMPOSITIONCHANGED 0x031E #define WM_DWMNCRENDERINGCHANGED 0x031F #define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320 #define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321 /* FIXME end */ #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; typedef struct _UNSIGNED_RATIO { UINT32 uiNumerator; UINT32 uiDenominator; } UNSIGNED_RATIO; typedef enum _DWM_SOURCE_FRAME_SAMPLING { DWM_SOURCE_FRAME_SAMPLING_POINT = 1, DWM_SOURCE_FRAME_SAMPLING_COVERAGE, DWM_SOURCE_FRAME_SAMPLING_LAST } DWM_SOURCE_FRAME_SAMPLING; typedef ULONGLONG DWM_FRAME_COUNT; 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; typedef ULONGLONG QPC_TIME; 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 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_LAST } DWMWINDOWATTRIBUTE; #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 enum _DWMFLIP3DWINDOWPOLICY { DWMFLIP3D_DEFAULT, DWMFLIP3D_EXCLUDEBELOW, DWMFLIP3D_EXCLUDEABOVE } DWMFLIP3DWINDOWPOLICY; typedef enum _DWMNCRENDERINGPOLICY { DWMNCRP_USEWINDOWSTYLE, DWMNCRP_DISABLED, DWMNCRP_ENABLED, DWMNCRP_LAST } DWMNCRENDERINGPOLICY; typedef HANDLE HTHUMBNAIL; typedef HTHUMBNAIL* PHTHUMBNAIL; BOOL WINAPI DwmDefWindowProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult ); HRESULT WINAPI DwmEnableBlurBehindWindow( HWND hWnd, const DWM_BLURBEHIND *pBlurBehind ); HRESULT WINAPI DwmEnableComposition( UINT uCompositionAction ); HRESULT WINAPI DwmEnableMMCSS( BOOL fEnableMMCSS ); HRESULT WINAPI DwmExtendFrameIntoClientArea( HWND hWnd, const MARGINS *pMarInset ); HRESULT WINAPI DwmGetColorizationColor( DWORD *pcrColorization, BOOL *pfOpaqueBlend ); HRESULT WINAPI DwmGetCompositionTimingInfo( HWND hwnd, DWM_TIMING_INFO *pTimingInfo ); HRESULT WINAPI DwmGetWindowAttribute( HWND hwnd, DWORD dwAttribute, PVOID pvAttribute, DWORD cbAttribute ); HRESULT WINAPI DwmIsCompositionEnabled( BOOL *pfEnabled ); HRESULT WINAPI DwmModifyPreviousDxFrameDuration( HWND hwnd, INT cRefreshes, BOOL fRelative ); HRESULT WINAPI DwmQueryThumbnailSourceSize( HTHUMBNAIL hThumbnail, PSIZE pSize ); HRESULT WINAPI DwmRegisterThumbnail( HWND hwndDestination, HWND *hwndSource, PHTHUMBNAIL phThumbnailId ); HRESULT WINAPI DwmSetDxFrameDuration( HWND hwnd, INT cRefreshes ); HRESULT WINAPI DwmSetPresentParameters( HWND hwnd, DWM_PRESENT_PARAMETERS *pPresentParams ); HRESULT WINAPI DwmSetWindowAttribute( HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute ); HRESULT WINAPI DwmUnregisterThumbnail( HTHUMBNAIL hThumbnailId ); HRESULT WINAPI DwmUpdateThumbnailProperties( HTHUMBNAIL hThumbnailId, const DWM_THUMBNAIL_PROPERTIES *ptnProperties ); #ifdef __cplusplus } #endif #endif /* __WINAPI_DWMAPI_H */