From: "Gabriel Ivăncescu" Subject: [PATCH v2 1/3] dwmapi: Improve DwmGetWindowAttribute stub. Message-Id: <2787f0e9bc1c5e4ee246c6b9adb1c4d4aa3cc2fd.1576245227.git.gabrielopcode@gmail.com> Date: Fri, 13 Dec 2019 15:54:28 +0200 Signed-off-by: Gabriel Ivăncescu --- dlls/dwmapi/dwmapi_main.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/dlls/dwmapi/dwmapi_main.c b/dlls/dwmapi/dwmapi_main.c index 6378a09..e976fda 100644 --- a/dlls/dwmapi/dwmapi_main.c +++ b/dlls/dwmapi/dwmapi_main.c @@ -205,9 +205,31 @@ BOOL WINAPI DwmDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, */ HRESULT WINAPI DwmGetWindowAttribute(HWND hwnd, DWORD attribute, PVOID pv_attribute, DWORD size) { - FIXME("(%p %d %p %d) stub\n", hwnd, attribute, pv_attribute, size); + if (!hwnd) return E_HANDLE; + if (!pv_attribute) return E_INVALIDARG; - return E_NOTIMPL; + switch (attribute) + { + case DWMWA_NCRENDERING_ENABLED: + if (size < sizeof(BOOL)) return E_INVALIDARG; + + WARN("DWMWA_NCRENDERING_ENABLED: always returning FALSE.\n"); + *(BOOL*)(pv_attribute) = FALSE; + break; + + case DWMWA_CLOAKED: + if (size < sizeof(DWORD)) return E_INVALIDARG; + + WARN("DWMWA_CLOAKED: always returning 0.\n"); + *(DWORD*)(pv_attribute) = 0; + break; + + default: + FIXME("unimplemented attribute %d, size %u, for hwnd %p.\n", attribute, size, hwnd); + return E_INVALIDARG; + } + + return S_OK; } /********************************************************************** -- 2.21.0