222 lines
6.3 KiB
C
222 lines
6.3 KiB
C
/*
|
|
* 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 <pshpack1.h>
|
|
|
|
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 <poppack.h>
|
|
|
|
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 */
|