/* | |
* 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 | |
/* FIXME: it may not be neccessary to include tchar.h and windows.h */ | |
#include <tchar.h> | |
#include <windows.h> | |
/* FIXME end */ | |
/* for MARGINS structure declaration. */ | |
#include <uxtheme.h> | |
#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; | |
/* Only for Vista and higher */ | |
/* FIXME: use WINVER instead? */ | |
#if _WIN32_WINNT >= 0x0600 | |
BOOL DwmDefWindowProc( | |
HWND hwnd, | |
UINT msg, | |
WPARAM wParam, | |
LPARAM lParam, | |
LRESULT *plResult | |
); | |
HRESULT DwmEnableBlurBehindWindow( | |
HWND hWnd, | |
const DWM_BLURBEHIND *pBlurBehind | |
); | |
HRESULT DwmEnableComposition( | |
UINT uCompositionAction | |
); | |
HRESULT DwmEnableMMCSS( | |
BOOL fEnableMMCSS | |
); | |
HRESULT DwmExtendFrameIntoClientArea( | |
HWND hWnd, | |
const MARGINS *pMarInset | |
); | |
HRESULT DwmGetColorizationColor( | |
DWORD *pcrColorization, | |
BOOL *pfOpaqueBlend | |
); | |
HRESULT DwmGetCompositionTimingInfo( | |
HWND hwnd, | |
DWM_TIMING_INFO *pTimingInfo | |
); | |
HRESULT DwmGetWindowAttribute( | |
HWND hwnd, | |
DWORD dwAttribute, | |
PVOID pvAttribute, | |
DWORD cbAttribute | |
); | |
HRESULT DwmIsCompositionEnabled( | |
BOOL *pfEnabled | |
); | |
HRESULT DwmModifyPreviousDxFrameDuration( | |
HWND hwnd, | |
INT cRefreshes, | |
BOOL fRelative | |
); | |
HRESULT DwmQueryThumbnailSourceSize( | |
HTHUMBNAIL hThumbnail, | |
PSIZE pSize | |
); | |
HRESULT DwmRegisterThumbnail( | |
HWND hwndDestination, | |
HWND *hwndSource, | |
PHTHUMBNAIL phThumbnailId | |
); | |
HRESULT DwmSetDxFrameDuration( | |
HWND hwnd, | |
INT cRefreshes | |
); | |
HRESULT DwmSetPresentParameters( | |
HWND hwnd, | |
DWM_PRESENT_PARAMETERS *pPresentParams | |
); | |
HRESULT DwmSetWindowAttribute( | |
HWND hwnd, | |
DWORD dwAttribute, | |
LPCVOID pvAttribute, | |
DWORD cbAttribute | |
); | |
HRESULT DwmUnregisterThumbnail( | |
HTHUMBNAIL hThumbnailId | |
); | |
HRESULT DwmUpdateThumbnailProperties( | |
HTHUMBNAIL hThumbnailId, | |
const DWM_THUMBNAIL_PROPERTIES *ptnProperties | |
); | |
#endif | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif /* __WINAPI_DWMAPI_H */ | |