wine/include/dwmapi.h
2024-04-04 20:49:43 +02:00

230 lines
6.6 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_PASSIVE_UPDATE_MODE,
DWMWA_USE_HOSTBACKDROPBRUSH,
DWMWA_USE_IMMERSIVE_DARK_MODE = 20,
DWMWA_WINDOW_CORNER_PREFERENCE = 33,
DWMWA_BORDER_COLOR,
DWMWA_CAPTION_COLOR,
DWMWA_TEXT_COLOR,
DWMWA_VISIBLE_FRAME_BORDER_THICKNESS,
DWMWA_SYSTEMBACKDROP_TYPE,
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 */