Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/dwmapi/tests/Makefile.in | 2 +- dlls/dwmapi/tests/dwmapi.c | 51 +++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/dlls/dwmapi/tests/Makefile.in b/dlls/dwmapi/tests/Makefile.in index 6c61304..5a560ea 100644 --- a/dlls/dwmapi/tests/Makefile.in +++ b/dlls/dwmapi/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = dwmapi.dll -IMPORTS = dwmapi +IMPORTS = dwmapi gdi32 user32
C_SRCS = \ dwmapi.c diff --git a/dlls/dwmapi/tests/dwmapi.c b/dlls/dwmapi/tests/dwmapi.c index 1904e28..cebefa9 100644 --- a/dlls/dwmapi/tests/dwmapi.c +++ b/dlls/dwmapi/tests/dwmapi.c @@ -16,9 +16,37 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include "windows.h" #include "dwmapi.h" #include "wine/test.h"
+static HWND test_wnd; +static LRESULT WINAPI test_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + return DefWindowProcA(hwnd, message, wParam, lParam); +} + +static void test_DwmGetWindowAttribute(void) +{ + BOOL nc_rendering; + HRESULT hr; + + hr = DwmGetWindowAttribute(NULL, DWMWA_NCRENDERING_ENABLED, &nc_rendering, sizeof(nc_rendering)); + ok(hr == E_HANDLE || broken(hr == E_INVALIDARG) /* Vista */, "DwmGetWindowAttribute(DWMWA_NCRENDERING_ENABLED) returned 0x%08x.\n", hr); + hr = DwmGetWindowAttribute(test_wnd, DWMWA_NCRENDERING_ENABLED, NULL, sizeof(nc_rendering)); + ok(hr == E_INVALIDARG, "DwmGetWindowAttribute(DWMWA_NCRENDERING_ENABLED) returned 0x%08x.\n", hr); + hr = DwmGetWindowAttribute(test_wnd, DWMWA_NCRENDERING_ENABLED, &nc_rendering, 0); + ok(hr == E_INVALIDARG, "DwmGetWindowAttribute(DWMWA_NCRENDERING_ENABLED) returned 0x%08x.\n", hr); + nc_rendering = FALSE; + hr = DwmGetWindowAttribute(test_wnd, 0xdeadbeef, &nc_rendering, sizeof(nc_rendering)); + ok(hr == E_INVALIDARG, "DwmGetWindowAttribute(0xdeadbeef) returned 0x%08x.\n", hr); + + nc_rendering = 0xdeadbeef; + hr = DwmGetWindowAttribute(test_wnd, DWMWA_NCRENDERING_ENABLED, &nc_rendering, sizeof(nc_rendering)); + ok(hr == S_OK, "DwmGetWindowAttribute(DWMWA_NCRENDERING_ENABLED) failed 0x%08x.\n", hr); + ok(nc_rendering == FALSE || nc_rendering == TRUE, "non-boolean value 0x%x.\n", nc_rendering); +} + static void test_DwmIsCompositionEnabled(void) { BOOL enabled; @@ -35,5 +63,28 @@ static void test_DwmIsCompositionEnabled(void)
START_TEST(dwmapi) { + HINSTANCE inst = GetModuleHandleA(NULL); + WNDCLASSA cls; + + cls.style = 0; + cls.lpfnWndProc = test_wndproc; + cls.cbClsExtra = 0; + cls.cbWndExtra = 0; + cls.hInstance = inst; + cls.hIcon = 0; + cls.hCursor = LoadCursorA(0, (LPCSTR)IDC_ARROW); + cls.hbrBackground = GetStockObject(WHITE_BRUSH); + cls.lpszMenuName = NULL; + cls.lpszClassName = "Test"; + RegisterClassA(&cls); + + test_wnd = CreateWindowExA(0, "Test", "Test Window", WS_OVERLAPPEDWINDOW | WS_VISIBLE, + 100, 100, 200, 200, 0, 0, 0, NULL); + ok(test_wnd != NULL, "Failed to create test window.\n"); + + test_DwmGetWindowAttribute(); test_DwmIsCompositionEnabled(); + + DestroyWindow(test_wnd); + UnregisterClassA("Test", inst); }