266 lines
5.8 KiB
C
266 lines
5.8 KiB
C
|
/*
|
||
|
* 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 */
|
||
|
|