blob: 99b7f44444c94caa25e727a90e362bd451baf5ef [file] [log] [blame]
/*
* 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 */