https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6bbf09b6a5002da661965…
commit 6bbf09b6a5002da661965c9106ee079736316a3a
Author: Justin Miller <justin.miller(a)reactos.org>
AuthorDate: Mon Sep 18 07:30:44 2023 -0700
Commit: GitHub <noreply(a)github.com>
CommitDate: Mon Sep 18 07:30:44 2023 -0700
[WINESYNC][SDK][DWMAPI] Import DWMAPI from WINE 8-14 (#5594)
---
dll/win32/CMakeLists.txt | 4 +
dll/win32/dwmapi/CMakeLists.txt | 19 +++
dll/win32/dwmapi/dwmapi.spec | 67 ++++++++
dll/win32/dwmapi/dwmapi_main.c | 338 ++++++++++++++++++++++++++++++++++++++++
dll/win32/dwmapi/version.rc | 26 ++++
media/doc/WINESYNC.txt | 1 +
sdk/include/psdk/dwmapi.h | 85 +++++++++-
sdk/include/psdk/winerror.h | 10 ++
8 files changed, 548 insertions(+), 2 deletions(-)
diff --git a/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt
index 50c4080a8ca..da4dfb9162d 100644
--- a/dll/win32/CMakeLists.txt
+++ b/dll/win32/CMakeLists.txt
@@ -259,3 +259,7 @@ add_subdirectory(xinput1_3)
add_subdirectory(xinput9_1_0)
add_subdirectory(xmllite)
add_subdirectory(xolehlp)
+
+if(DLL_EXPORT_VERSION GREATER_EQUAL 0x600)
+ add_subdirectory(dwmapi)
+endif()
diff --git a/dll/win32/dwmapi/CMakeLists.txt b/dll/win32/dwmapi/CMakeLists.txt
new file mode 100644
index 00000000000..2c5eb4f0eca
--- /dev/null
+++ b/dll/win32/dwmapi/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+add_definitions(-D__WINESRC__)
+
+include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
+spec2def(dwmapi.dll dwmapi.spec)
+
+list(APPEND SOURCE
+ dwmapi_main.c)
+
+add_library(dwmapi MODULE
+ ${SOURCE}
+ version.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/dwmapi.def
+ ${CMAKE_CURRENT_BINARY_DIR}/dwmapi_stubs.c)
+
+set_module_type(dwmapi win32dll UNICODE ENTRYPOINT 0)
+target_link_libraries(dwmapi uuid wine)
+add_importlibs(dwmapi user32 kernel32 ntdll)
+add_cd_file(TARGET dwmapi DESTINATION reactos/system32 FOR all)
diff --git a/dll/win32/dwmapi/dwmapi.spec b/dll/win32/dwmapi/dwmapi.spec
new file mode 100644
index 00000000000..8477d9150ad
--- /dev/null
+++ b/dll/win32/dwmapi/dwmapi.spec
@@ -0,0 +1,67 @@
+100 stub DwmpDxGetWindowSharedSurface
+101 stub DwmpDxUpdateWindowSharedSurface
+102 stdcall DwmEnableComposition(long)
+103 stub -noname DwmpRestartComposition
+104 stub -noname DwmpSetColorizationColor
+105 stub -noname DwmpStartOrStopFlip3D
+106 stub -noname DwmpIsCompositionCapable
+107 stub -noname DwmpGetGlobalState
+108 stub -noname DwmpEnableRedirection
+109 stub -noname DwmpOpenGraphicsStream
+110 stub -noname DwmpCloseGraphicsStream
+112 stub -noname DwmpSetGraphicsStreamTransformHint
+113 stub -noname DwmpActivateLivePreview
+114 stub -noname DwmpQueryThumbnailType
+115 stub -noname DwmpStartupViaUserInit
+118 stub -noname DwmpGetAssessment
+119 stub -noname DwmpGetAssessmentUsage
+120 stub -noname DwmpSetAssessmentUsage
+121 stub -noname DwmpIsSessionDWM
+124 stub -noname DwmpRegisterThumbnail
+125 stub DwmpDxBindSwapChain
+126 stub DwmpDxUnbindSwapChain
+127 stdcall -noname DwmpGetColorizationParameters(ptr)
+128 stub DwmpDxgiIsThreadDesktopComposited
+129 stub -noname DwmpDxgiDisableRedirection
+130 stub -noname DwmpDxgiEnableRedirection
+131 stub -noname DwmpSetColorizationParameters
+132 stub -noname DwmpGetCompositionTimingInfoEx
+133 stub DwmpDxUpdateWindowRedirectionBltSurface
+134 stub -noname DwmpDxSetContentHostingInformation
+135 stub DwmpRenderFlick
+136 stub DwmpAllocateSecurityDescriptor
+137 stub DwmpFreeSecurityDescriptor
+143 stub DwmpEnableDDASupport
+156 stub DwmTetherTextContact
+
+# @ stdcall -private DllCanUnloadNow()
+# @ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall DwmAttachMilContent(long)
+@ stdcall DwmDefWindowProc(long long long long ptr)
+@ stdcall DwmDetachMilContent(long)
+@ stdcall DwmEnableBlurBehindWindow(ptr ptr)
+@ stdcall DwmEnableMMCSS(long)
+@ stdcall DwmExtendFrameIntoClientArea(long ptr)
+@ stdcall DwmFlush()
+@ stdcall DwmGetColorizationColor(ptr ptr)
+@ stdcall DwmGetCompositionTimingInfo(long ptr)
+@ stdcall DwmGetGraphicsStreamClient(long ptr)
+@ stdcall DwmGetGraphicsStreamTransformHint(long ptr)
+@ stdcall DwmGetTransportAttributes(ptr ptr ptr)
+@ stdcall DwmGetWindowAttribute(ptr long ptr long)
+@ stdcall DwmInvalidateIconicBitmaps(ptr)
+@ stdcall DwmIsCompositionEnabled(ptr)
+@ stub DwmModifyPreviousDxFrameDuration
+@ stub DwmQueryThumbnailSourceSize
+@ stdcall DwmRegisterThumbnail(long long ptr)
+# @ stub DwmRenderGesture
+@ stub DwmSetDxFrameDuration
+@ stdcall DwmSetIconicLivePreviewBitmap(long long ptr long)
+@ stdcall DwmSetIconicThumbnail(long long long)
+@ stdcall DwmSetPresentParameters(ptr ptr)
+@ stdcall DwmSetWindowAttribute(long long ptr long)
+# @ stub DwmShowContact
+# @ stub DwmTetherContact
+# @ stub DwmTransitionOwnedWindow
+@ stdcall DwmUnregisterThumbnail(long)
+@ stdcall DwmUpdateThumbnailProperties(ptr ptr)
diff --git a/dll/win32/dwmapi/dwmapi_main.c b/dll/win32/dwmapi/dwmapi_main.c
new file mode 100644
index 00000000000..2e6a91c7ded
--- /dev/null
+++ b/dll/win32/dwmapi/dwmapi_main.c
@@ -0,0 +1,338 @@
+/*
+ * Dwmapi
+ *
+ * Copyright 2007 Andras Kovacs
+ *
+ * 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
+ *
+ */
+
+#include <stdarg.h>
+
+#ifdef __REACTOS__
+#include <rtlfuncs.h>
+#else
+#include "winternl.h"
+#endif
+
+#define COBJMACROS
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "dwmapi.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(dwmapi);
+
+
+/**********************************************************************
+ * DwmIsCompositionEnabled (DWMAPI.@)
+ */
+HRESULT WINAPI DwmIsCompositionEnabled(BOOL *enabled)
+{
+
+#ifdef __REACTOS__
+ RTL_OSVERSIONINFOW version;
+#else
+ RTL_OSVERSIONINFOEXW version;
+#endif
+
+ TRACE("%p\n", enabled);
+
+ if (!enabled)
+ return E_INVALIDARG;
+
+ *enabled = FALSE;
+ version.dwOSVersionInfoSize = sizeof(version);
+ if (!RtlGetVersion(&version))
+ *enabled = (version.dwMajorVersion > 6 || (version.dwMajorVersion == 6
&& version.dwMinorVersion >= 3));
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmEnableComposition (DWMAPI.102)
+ */
+HRESULT WINAPI DwmEnableComposition(UINT uCompositionAction)
+{
+ FIXME("(%d) stub\n", uCompositionAction);
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmExtendFrameIntoClientArea (DWMAPI.@)
+ */
+HRESULT WINAPI DwmExtendFrameIntoClientArea(HWND hwnd, const MARGINS* margins)
+{
+ FIXME("(%p, %p) stub\n", hwnd, margins);
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmGetColorizationColor (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetColorizationColor(DWORD *colorization, BOOL *opaque_blend)
+{
+ FIXME("(%p, %p) stub\n", colorization, opaque_blend);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmFlush (DWMAPI.@)
+ */
+HRESULT WINAPI DwmFlush(void)
+{
+ static BOOL once;
+
+ if (!once++) FIXME("() stub\n");
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmInvalidateIconicBitmaps (DWMAPI.@)
+ */
+HRESULT WINAPI DwmInvalidateIconicBitmaps(HWND hwnd)
+{
+ static BOOL once;
+
+ if (!once++) FIXME("(%p) stub\n", hwnd);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmSetWindowAttribute (DWMAPI.@)
+ */
+HRESULT WINAPI DwmSetWindowAttribute(HWND hwnd, DWORD attributenum, LPCVOID attribute,
DWORD size)
+{
+ static BOOL once;
+
+ if (!once++) FIXME("(%p, %lx, %p, %lx) stub\n", hwnd, attributenum,
attribute, size);
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmGetGraphicsStreamClient (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetGraphicsStreamClient(UINT uIndex, UUID *pClientUuid)
+{
+ FIXME("(%d, %p) stub\n", uIndex, pClientUuid);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmGetTransportAttributes (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetTransportAttributes(BOOL *pfIsRemoting, BOOL *pfIsConnected, DWORD
*pDwGeneration)
+{
+ FIXME("(%p, %p, %p) stub\n", pfIsRemoting, pfIsConnected, pDwGeneration);
+
+ return DWM_E_COMPOSITIONDISABLED;
+}
+
+/**********************************************************************
+ * DwmUnregisterThumbnail (DWMAPI.@)
+ */
+HRESULT WINAPI DwmUnregisterThumbnail(HTHUMBNAIL thumbnail)
+{
+ FIXME("(%p) stub\n", thumbnail);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmEnableMMCSS (DWMAPI.@)
+ */
+HRESULT WINAPI DwmEnableMMCSS(BOOL enableMMCSS)
+{
+ FIXME("(%d) stub\n", enableMMCSS);
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmGetGraphicsStreamTransformHint (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetGraphicsStreamTransformHint(UINT uIndex, MilMatrix3x2D *pTransform)
+{
+ FIXME("(%d, %p) stub\n", uIndex, pTransform);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmEnableBlurBehindWindow (DWMAPI.@)
+ */
+HRESULT WINAPI DwmEnableBlurBehindWindow(HWND hWnd, const DWM_BLURBEHIND *pBlurBuf)
+{
+ FIXME("%p %p\n", hWnd, pBlurBuf);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmDefWindowProc (DWMAPI.@)
+ */
+BOOL WINAPI DwmDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT
*plResult)
+{
+ static int i;
+
+ if (!i++) FIXME("stub\n");
+
+ return FALSE;
+}
+
+/**********************************************************************
+ * DwmGetWindowAttribute (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetWindowAttribute(HWND hwnd, DWORD attribute, PVOID pv_attribute,
DWORD size)
+{
+ FIXME("(%p %ld %p %ld) stub\n", hwnd, attribute, pv_attribute, size);
+
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmRegisterThumbnail (DWMAPI.@)
+ */
+HRESULT WINAPI DwmRegisterThumbnail(HWND dest, HWND src, PHTHUMBNAIL thumbnail_id)
+{
+ FIXME("(%p %p %p) stub\n", dest, src, thumbnail_id);
+
+ return E_NOTIMPL;
+}
+
+static int get_display_frequency(void)
+{
+ DEVMODEW mode;
+ BOOL ret;
+
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ ret = EnumDisplaySettingsExW(NULL, ENUM_CURRENT_SETTINGS, &mode, 0);
+ if (ret && mode.dmFields & DM_DISPLAYFREQUENCY &&
mode.dmDisplayFrequency)
+ {
+ return mode.dmDisplayFrequency;
+ }
+ else
+ {
+ WARN("Failed to query display frequency, returning a fallback
value.\n");
+ return 60;
+ }
+}
+
+/**********************************************************************
+ * DwmGetCompositionTimingInfo (DWMAPI.@)
+ */
+HRESULT WINAPI DwmGetCompositionTimingInfo(HWND hwnd, DWM_TIMING_INFO *info)
+{
+ LARGE_INTEGER performance_frequency, qpc;
+ static int i, display_frequency;
+
+ if (!info)
+ return E_INVALIDARG;
+
+ if (info->cbSize != sizeof(DWM_TIMING_INFO))
+ return MILERR_MISMATCHED_SIZE;
+
+ if(!i++) FIXME("(%p %p)\n", hwnd, info);
+
+ memset(info, 0, info->cbSize);
+ info->cbSize = sizeof(DWM_TIMING_INFO);
+
+ display_frequency = get_display_frequency();
+ info->rateRefresh.uiNumerator = display_frequency;
+ info->rateRefresh.uiDenominator = 1;
+ info->rateCompose.uiNumerator = display_frequency;
+ info->rateCompose.uiDenominator = 1;
+
+ QueryPerformanceFrequency(&performance_frequency);
+ info->qpcRefreshPeriod = performance_frequency.QuadPart / display_frequency;
+
+ QueryPerformanceCounter(&qpc);
+ info->qpcVBlank = (qpc.QuadPart / info->qpcRefreshPeriod) *
info->qpcRefreshPeriod;
+
+ return S_OK;
+}
+
+/**********************************************************************
+ * DwmAttachMilContent (DWMAPI.@)
+ */
+HRESULT WINAPI DwmAttachMilContent(HWND hwnd)
+{
+ FIXME("(%p) stub\n", hwnd);
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmDetachMilContent (DWMAPI.@)
+ */
+HRESULT WINAPI DwmDetachMilContent(HWND hwnd)
+{
+ FIXME("(%p) stub\n", hwnd);
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmUpdateThumbnailProperties (DWMAPI.@)
+ */
+HRESULT WINAPI DwmUpdateThumbnailProperties(HTHUMBNAIL thumbnail, const
DWM_THUMBNAIL_PROPERTIES *props)
+{
+ FIXME("(%p, %p) stub\n", thumbnail, props);
+ return E_NOTIMPL;
+}
+
+/**********************************************************************
+ * DwmSetPresentParameters (DWMAPI.@)
+ */
+HRESULT WINAPI DwmSetPresentParameters(HWND hwnd, DWM_PRESENT_PARAMETERS *params)
+{
+ FIXME("(%p %p) stub\n", hwnd, params);
+ return S_OK;
+};
+
+/**********************************************************************
+ * DwmSetIconicLivePreviewBitmap (DWMAPI.@)
+ */
+HRESULT WINAPI DwmSetIconicLivePreviewBitmap(HWND hwnd, HBITMAP hbmp, POINT *pos, DWORD
flags)
+{
+ FIXME("(%p %p %p %lx) stub\n", hwnd, hbmp, pos, flags);
+ return S_OK;
+};
+
+/**********************************************************************
+ * DwmSetIconicThumbnail (DWMAPI.@)
+ */
+HRESULT WINAPI DwmSetIconicThumbnail(HWND hwnd, HBITMAP hbmp, DWORD flags)
+{
+ FIXME("(%p %p %lx) stub\n", hwnd, hbmp, flags);
+ return S_OK;
+};
+
+/**********************************************************************
+ * DwmpGetColorizationParameters (DWMAPI.@)
+ */
+HRESULT WINAPI DwmpGetColorizationParameters(void *params)
+{
+ FIXME("(%p) stub\n", params);
+ return E_NOTIMPL;
+}
diff --git a/dll/win32/dwmapi/version.rc b/dll/win32/dwmapi/version.rc
new file mode 100644
index 00000000000..b76f194dd65
--- /dev/null
+++ b/dll/win32/dwmapi/version.rc
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2007 Andras Kovacs
+ *
+ * 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
+ */
+
+#define WINE_FILEDESCRIPTION_STR "Desktop Window Manager API"
+#define WINE_FILENAME_STR "dwmapi.dll"
+#define WINE_FILEVERSION 6,0,6000,16386
+#define WINE_FILEVERSION_STR "6.0.6000.16386"
+#define WINE_PRODUCTVERSION 6,0,6000,16386
+#define WINE_PRODUCTVERSION_STR "6.0.6000.16386"
+
+#include "wine/wine_common_ver.rc"
diff --git a/media/doc/WINESYNC.txt b/media/doc/WINESYNC.txt
index 228295cedb1..f6614ac83a9 100644
--- a/media/doc/WINESYNC.txt
+++ b/media/doc/WINESYNC.txt
@@ -68,6 +68,7 @@ dll/win32/cryptui # Synced to WineStaging-4.18
dll/win32/dbgeng # Synced to WineStaging-4.18
dll/win32/dbghelp # Synced to WineStaging-5.16
dll/win32/dciman32 # Synced to WineStaging-3.3
+dll/win32/dwmapi # Synced to Wine-8.14
dll/win32/faultrep # Synced to WineStaging-4.18
dll/win32/fontsub # Synced to WineStaging-2.9
dll/win32/fusion # Synced to WineStaging-4.18
diff --git a/sdk/include/psdk/dwmapi.h b/sdk/include/psdk/dwmapi.h
index 035c831a2b3..1b19426ce2d 100644
--- a/sdk/include/psdk/dwmapi.h
+++ b/sdk/include/psdk/dwmapi.h
@@ -34,9 +34,52 @@ 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;
@@ -95,6 +138,11 @@ typedef struct _MilMatrix3x2D
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
@@ -107,6 +155,18 @@ typedef struct _DWM_BLURBEHIND
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;
@@ -117,18 +177,39 @@ typedef struct _DWM_THUMBNAIL_PROPERTIES
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 DwmDefWindowProc(HWND, UINT, WPARAM, LPARAM, LRESULT*);
+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 DwmGetColorizationColor(DWORD*,BOOL);
+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 *);
diff --git a/sdk/include/psdk/winerror.h b/sdk/include/psdk/winerror.h
index c3815c27e36..f20c7a9249b 100644
--- a/sdk/include/psdk/winerror.h
+++ b/sdk/include/psdk/winerror.h
@@ -3270,6 +3270,14 @@
#define WININET_E_NAME_NOT_RESOLVED _HRESULT_TYPEDEF_(0x80072ee7)
+#define ERROR_HUNG_DISPLAY_DRIVER_THREAD _HRESULT_TYPEDEF_(0x80260001)
+#define DWM_E_COMPOSITIONDISABLED _HRESULT_TYPEDEF_(0x80263001)
+#define DWM_E_REMOTING_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80263002)
+#define DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE _HRESULT_TYPEDEF_(0x80263003)
+#define DWM_E_NOT_QUEUING_PRESENTS _HRESULT_TYPEDEF_(0x80263004)
+#define DWM_E_ADAPTER_NOT_FOUND _HRESULT_TYPEDEF_(0x80263005)
+#define DWM_S_GDI_REDIRECTION_SURFACE _HRESULT_TYPEDEF_(0x00263005)
+
#define WINCODEC_ERR_WRONGSTATE _HRESULT_TYPEDEF_(0x88982f04)
#define WINCODEC_ERR_VALUEOUTOFRANGE _HRESULT_TYPEDEF_(0x88982f05)
#define WINCODEC_ERR_UNKNOWNIMAGEFORMAT _HRESULT_TYPEDEF_(0x88982f07)
@@ -3311,6 +3319,8 @@
#define WINCODEC_ERR_WIN32ERROR _HRESULT_TYPEDEF_(0x88982f94)
#define WINCODEC_ERR_INVALIDPROGRESSIVELEVEL _HRESULT_TYPEDEF_(0x88982f95)
+#define MILERR_MISMATCHED_SIZE _HRESULT_TYPEDEF_(0x88980090)
+
#define ERROR_AUDITING_DISABLED
_HRESULT_TYPEDEF_(0xC0090001L)
#define ERROR_ALL_SIDS_FILTERED
_HRESULT_TYPEDEF_(0xC0090002L)