[PATCH 5/6] ddraw/tests: Test messages on focus loss.
Stefan Dösinger
stefan at codeweavers.com
Wed Nov 12 15:15:38 CST 2014
---
dlls/ddraw/tests/ddraw1.c | 97 +++++++++++++++++++++++++++++++-------------
dlls/ddraw/tests/ddraw2.c | 101 ++++++++++++++++++++++++++++++++--------------
dlls/ddraw/tests/ddraw4.c | 101 ++++++++++++++++++++++++++++++++--------------
dlls/ddraw/tests/ddraw7.c | 101 ++++++++++++++++++++++++++++++++--------------
4 files changed, 278 insertions(+), 122 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 0ae204c..b31e25e 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -428,12 +428,26 @@ static void destroy_material(IDirect3DMaterial *material)
IDirect3DMaterial_Release(material);
}
-static const UINT *expect_messages;
+struct message
+{
+ UINT message;
+ BOOL check_wparam;
+ WPARAM expect_wparam;
+};
+
+static const struct message *expect_messages;
static LRESULT CALLBACK test_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
- if (expect_messages && message == *expect_messages)
+ if (expect_messages && message == expect_messages->message)
+ {
+ if (expect_messages->check_wparam)
+ ok (wparam == expect_messages->expect_wparam,
+ "Got unexpected wparam %lx for message %x, expected %lx.\n",
+ wparam, message, expect_messages->expect_wparam);
+
++expect_messages;
+ }
return DefWindowProcA(hwnd, message, wparam, lparam);
}
@@ -1878,15 +1892,15 @@ static void test_wndproc(void)
HRESULT hr;
ULONG ref;
- static const UINT messages[] =
+ static struct message messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_MOVE,
- WM_SIZE,
- WM_WINDOWPOSCHANGING,
- WM_ACTIVATE,
- WM_SETFOCUS,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_ACTIVATE, FALSE, 0},
+ {WM_SETFOCUS, FALSE, 0},
+ {0, FALSE, 0},
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
@@ -1906,7 +1920,7 @@ static void test_wndproc(void)
expect_messages = messages;
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
proc = GetWindowLongPtrA(window, GWLP_WNDPROC);
ok(proc != (LONG_PTR)test_proc, "Expected wndproc != %#lx, got %#lx.\n",
@@ -2147,19 +2161,34 @@ static void test_coop_level_mode_set(void)
BOOL ret;
LONG change_ret;
- static const UINT exclusive_messages[] =
+ static const struct message exclusive_messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_WINDOWPOSCHANGED,
- WM_SIZE,
- WM_DISPLAYCHANGE,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
+ };
+ static const struct message exclusive_focus_loss_messages[] =
+ {
+ {WM_ACTIVATE, TRUE, WA_INACTIVE},
+ /*{WM_DISPLAYCHANGE, FALSE, 0}, Not yet implemented on Wine. */
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ /* Like d3d8 and d3d9 ddraw seems to use SW_SHOWMINIMIZED instead of
+ * SW_MINIMIZED, causing a recursive window activation that does not
+ * produe the same result in Wine yet. Ignore the difference for now.
+ * {WM_ACTIVATE, TRUE, 0x200000 | WA_ACTIVE}, */
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, TRUE, SIZE_MINIMIZED},
+ {WM_ACTIVATEAPP, TRUE, FALSE},
+ {0, FALSE, 0},
};
- static const UINT normal_messages[] =
+ static const struct message normal_messages[] =
{
- WM_DISPLAYCHANGE,
- 0,
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
};
ddraw = create_ddraw();
@@ -2234,7 +2263,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.ddraw_width && screen_size.cy == param.ddraw_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2280,7 +2309,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.user32_width && screen_size.cy == param.user32_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2291,6 +2320,16 @@ static void test_coop_level_mode_set(void)
user32_rect.left, user32_rect.top, user32_rect.right, user32_rect.bottom,
r.left, r.top, r.right, r.bottom);
+ expect_messages = exclusive_focus_loss_messages;
+ SetForegroundWindow(GetDesktopWindow());
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+ ShowWindow(window, SW_RESTORE);
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+ hr = IDirectDrawSurface_Restore(primary);
+ ok(SUCCEEDED(hr), "Surface Restore failed, hr %#x.\n", hr);
+
PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE);
expect_messages = exclusive_messages;
screen_size.cx = 0;
@@ -2299,7 +2338,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- todo_wine ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
todo_wine ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2385,7 +2424,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2409,7 +2448,7 @@ static void test_coop_level_mode_set(void)
}
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2453,7 +2492,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2548,7 +2587,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2565,7 +2604,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2609,7 +2648,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 334d89e..84dd17a 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -361,12 +361,26 @@ static void destroy_material(IDirect3DMaterial2 *material)
IDirect3DMaterial2_Release(material);
}
-static const UINT *expect_messages;
+struct message
+{
+ UINT message;
+ BOOL check_wparam;
+ WPARAM expect_wparam;
+};
+
+static const struct message *expect_messages;
static LRESULT CALLBACK test_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
- if (expect_messages && message == *expect_messages)
+ if (expect_messages && message == expect_messages->message)
+ {
+ if (expect_messages->check_wparam)
+ ok (wparam == expect_messages->expect_wparam,
+ "Got unexpected wparam %lx for message %x, expected %lx.\n",
+ wparam, message, expect_messages->expect_wparam);
+
++expect_messages;
+ }
return DefWindowProcA(hwnd, message, wparam, lparam);
}
@@ -2066,15 +2080,15 @@ static void test_wndproc(void)
HRESULT hr;
ULONG ref;
- static const UINT messages[] =
+ static struct message messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_MOVE,
- WM_SIZE,
- WM_WINDOWPOSCHANGING,
- WM_ACTIVATE,
- WM_SETFOCUS,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_ACTIVATE, FALSE, 0},
+ {WM_SETFOCUS, FALSE, 0},
+ {0, FALSE, 0},
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
@@ -2094,7 +2108,7 @@ static void test_wndproc(void)
expect_messages = messages;
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
proc = GetWindowLongPtrA(window, GWLP_WNDPROC);
ok(proc != (LONG_PTR)test_proc, "Expected wndproc != %#lx, got %#lx.\n",
@@ -2346,19 +2360,34 @@ static void test_coop_level_mode_set(void)
BOOL ret;
LONG change_ret;
- static const UINT exclusive_messages[] =
+ static const struct message exclusive_messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_WINDOWPOSCHANGED,
- WM_SIZE,
- WM_DISPLAYCHANGE,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
+ };
+ static const struct message exclusive_focus_loss_messages[] =
+ {
+ {WM_ACTIVATE, TRUE, WA_INACTIVE},
+ /*{WM_DISPLAYCHANGE, FALSE, 0}, Not yet implemented on Wine. */
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ /* Like d3d8 and d3d9 ddraw seems to use SW_SHOWMINIMIZED instead of
+ * SW_MINIMIZED, causing a recursive window activation that does not
+ * produe the same result in Wine yet. Ignore the difference for now.
+ * {WM_ACTIVATE, TRUE, 0x200000 | WA_ACTIVE}, */
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, TRUE, SIZE_MINIMIZED},
+ {WM_ACTIVATEAPP, TRUE, FALSE},
+ {0, FALSE, 0},
};
- static const UINT normal_messages[] =
+ static const struct message normal_messages[] =
{
- WM_DISPLAYCHANGE,
- 0,
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
};
ddraw = create_ddraw();
@@ -2438,7 +2467,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.ddraw_width && screen_size.cy == param.ddraw_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2484,7 +2513,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.user32_width && screen_size.cy == param.user32_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2495,6 +2524,16 @@ static void test_coop_level_mode_set(void)
user32_rect.left, user32_rect.top, user32_rect.right, user32_rect.bottom,
r.left, r.top, r.right, r.bottom);
+ expect_messages = exclusive_focus_loss_messages;
+ SetForegroundWindow(GetDesktopWindow());
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+ ShowWindow(window, SW_RESTORE);
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+ hr = IDirectDrawSurface_Restore(primary);
+ ok(SUCCEEDED(hr), "Surface Restore failed, hr %#x.\n", hr);
+
PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE);
expect_messages = exclusive_messages;
screen_size.cx = 0;
@@ -2503,7 +2542,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw2_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- todo_wine ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
todo_wine ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2589,7 +2628,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2613,7 +2652,7 @@ static void test_coop_level_mode_set(void)
}
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2657,7 +2696,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2752,7 +2791,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2769,7 +2808,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2813,7 +2852,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw2_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2874,7 +2913,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2945,7 +2984,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n",
screen_size.cx, screen_size.cy);
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index ab03f39..fa8309d 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -391,12 +391,26 @@ static void destroy_material(IDirect3DMaterial3 *material)
IDirect3DMaterial3_Release(material);
}
-static const UINT *expect_messages;
+struct message
+{
+ UINT message;
+ BOOL check_wparam;
+ WPARAM expect_wparam;
+};
+
+static const struct message *expect_messages;
static LRESULT CALLBACK test_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
- if (expect_messages && message == *expect_messages)
+ if (expect_messages && message == expect_messages->message)
+ {
+ if (expect_messages->check_wparam)
+ ok (wparam == expect_messages->expect_wparam,
+ "Got unexpected wparam %lx for message %x, expected %lx.\n",
+ wparam, message, expect_messages->expect_wparam);
+
++expect_messages;
+ }
return DefWindowProcA(hwnd, message, wparam, lparam);
}
@@ -2253,15 +2267,15 @@ static void test_wndproc(void)
HRESULT hr;
ULONG ref;
- static const UINT messages[] =
+ static struct message messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_MOVE,
- WM_SIZE,
- WM_WINDOWPOSCHANGING,
- WM_ACTIVATE,
- WM_SETFOCUS,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_ACTIVATE, FALSE, 0},
+ {WM_SETFOCUS, FALSE, 0},
+ {0, FALSE, 0},
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
@@ -2281,7 +2295,7 @@ static void test_wndproc(void)
expect_messages = messages;
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
proc = GetWindowLongPtrA(window, GWLP_WNDPROC);
ok(proc != (LONG_PTR)test_proc, "Expected wndproc != %#lx, got %#lx.\n",
@@ -2533,19 +2547,34 @@ static void test_coop_level_mode_set(void)
BOOL ret;
LONG change_ret;
- static const UINT exclusive_messages[] =
+ static const struct message exclusive_messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_WINDOWPOSCHANGED,
- WM_SIZE,
- WM_DISPLAYCHANGE,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
+ };
+ static const struct message exclusive_focus_loss_messages[] =
+ {
+ {WM_ACTIVATE, TRUE, WA_INACTIVE},
+ /*{WM_DISPLAYCHANGE, FALSE, 0}, Not yet implemented on Wine. */
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ /* Like d3d8 and d3d9 ddraw seems to use SW_SHOWMINIMIZED instead of
+ * SW_MINIMIZED, causing a recursive window activation that does not
+ * produe the same result in Wine yet. Ignore the difference for now.
+ * {WM_ACTIVATE, TRUE, 0x200000 | WA_ACTIVE}, */
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, TRUE, SIZE_MINIMIZED},
+ {WM_ACTIVATEAPP, TRUE, FALSE},
+ {0, FALSE, 0},
};
- static const UINT normal_messages[] =
+ static const struct message normal_messages[] =
{
- WM_DISPLAYCHANGE,
- 0,
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
};
ddraw = create_ddraw();
@@ -2625,7 +2654,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.ddraw_width && screen_size.cy == param.ddraw_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2671,7 +2700,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.user32_width && screen_size.cy == param.user32_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2682,6 +2711,16 @@ static void test_coop_level_mode_set(void)
user32_rect.left, user32_rect.top, user32_rect.right, user32_rect.bottom,
r.left, r.top, r.right, r.bottom);
+ expect_messages = exclusive_focus_loss_messages;
+ SetForegroundWindow(GetDesktopWindow());
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+ ShowWindow(window, SW_RESTORE);
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+ hr = IDirectDrawSurface4_Restore(primary);
+ ok(SUCCEEDED(hr), "Surface Restore failed, hr %#x.\n", hr);
+
PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE);
expect_messages = exclusive_messages;
screen_size.cx = 0;
@@ -2690,7 +2729,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw4_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- todo_wine ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
todo_wine ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2776,7 +2815,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2793,7 +2832,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2837,7 +2876,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw4_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2932,7 +2971,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2949,7 +2988,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2993,7 +3032,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw4_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -3054,7 +3093,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -3125,7 +3164,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n",
screen_size.cx, screen_size.cy);
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index f505c65..adbecc2 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -324,12 +324,26 @@ static IDirect3DDevice7 *create_device(HWND window, DWORD coop_level)
return device;
}
-static const UINT *expect_messages;
+struct message
+{
+ UINT message;
+ BOOL check_wparam;
+ WPARAM expect_wparam;
+};
+
+static const struct message *expect_messages;
static LRESULT CALLBACK test_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
- if (expect_messages && message == *expect_messages)
+ if (expect_messages && message == expect_messages->message)
+ {
+ if (expect_messages->check_wparam)
+ ok (wparam == expect_messages->expect_wparam,
+ "Got unexpected wparam %lx for message %x, expected %lx.\n",
+ wparam, message, expect_messages->expect_wparam);
+
++expect_messages;
+ }
return DefWindowProcA(hwnd, message, wparam, lparam);
}
@@ -1931,15 +1945,15 @@ static void test_wndproc(void)
HRESULT hr;
ULONG ref;
- static const UINT messages[] =
+ static struct message messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_MOVE,
- WM_SIZE,
- WM_WINDOWPOSCHANGING,
- WM_ACTIVATE,
- WM_SETFOCUS,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_ACTIVATE, FALSE, 0},
+ {WM_SETFOCUS, FALSE, 0},
+ {0, FALSE, 0},
};
/* DDSCL_EXCLUSIVE replaces the window's window proc. */
@@ -1959,7 +1973,7 @@ static void test_wndproc(void)
expect_messages = messages;
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
proc = GetWindowLongPtrA(window, GWLP_WNDPROC);
ok(proc != (LONG_PTR)test_proc, "Expected wndproc != %#lx, got %#lx.\n",
@@ -2210,19 +2224,34 @@ static void test_coop_level_mode_set(void)
BOOL ret;
LONG change_ret;
- static const UINT exclusive_messages[] =
+ static const struct message exclusive_messages[] =
{
- WM_WINDOWPOSCHANGING,
- WM_WINDOWPOSCHANGED,
- WM_SIZE,
- WM_DISPLAYCHANGE,
- 0,
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_SIZE, FALSE, 0},
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
+ };
+ static const struct message exclusive_focus_loss_messages[] =
+ {
+ {WM_ACTIVATE, TRUE, WA_INACTIVE},
+ /*{WM_DISPLAYCHANGE, FALSE, 0}, Not yet implemented on Wine. */
+ {WM_WINDOWPOSCHANGING, FALSE, 0},
+ /* Like d3d8 and d3d9 ddraw seems to use SW_SHOWMINIMIZED instead of
+ * SW_MINIMIZED, causing a recursive window activation that does not
+ * produe the same result in Wine yet. Ignore the difference for now.
+ * {WM_ACTIVATE, TRUE, 0x200000 | WA_ACTIVE}, */
+ {WM_WINDOWPOSCHANGED, FALSE, 0},
+ {WM_MOVE, FALSE, 0},
+ {WM_SIZE, TRUE, SIZE_MINIMIZED},
+ {WM_ACTIVATEAPP, TRUE, FALSE},
+ {0, FALSE, 0},
};
- static const UINT normal_messages[] =
+ static const struct message normal_messages[] =
{
- WM_DISPLAYCHANGE,
- 0,
+ {WM_DISPLAYCHANGE, FALSE, 0},
+ {0, FALSE, 0},
};
ddraw = create_ddraw();
@@ -2302,7 +2331,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.ddraw_width && screen_size.cy == param.ddraw_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2348,7 +2377,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == param.user32_width && screen_size.cy == param.user32_height,
"Expected screen size %ux%u, got %ux%u.\n",
@@ -2359,6 +2388,16 @@ static void test_coop_level_mode_set(void)
user32_rect.left, user32_rect.top, user32_rect.right, user32_rect.bottom,
r.left, r.top, r.right, r.bottom);
+ expect_messages = exclusive_focus_loss_messages;
+ SetForegroundWindow(GetDesktopWindow());
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+ ShowWindow(window, SW_RESTORE);
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+ hr = IDirectDrawSurface7_Restore(primary);
+ ok(SUCCEEDED(hr), "Surface Restore failed, hr %#x.\n", hr);
+
PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE);
expect_messages = exclusive_messages;
screen_size.cx = 0;
@@ -2367,7 +2406,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw7_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- todo_wine ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
todo_wine ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2453,7 +2492,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2470,7 +2509,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2514,7 +2553,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2609,7 +2648,7 @@ static void test_coop_level_mode_set(void)
change_ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
ok(change_ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", change_ret);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2626,7 +2665,7 @@ static void test_coop_level_mode_set(void)
hr = set_display_mode(ddraw, param.ddraw_width, param.ddraw_height);
ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2670,7 +2709,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw7_RestoreDisplayMode(ddraw);
ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n", screen_size.cx, screen_size.cy);
@@ -2731,7 +2770,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(screen_size.cx == registry_mode.dmPelsWidth
&& screen_size.cy == registry_mode.dmPelsHeight,
@@ -2802,7 +2841,7 @@ static void test_coop_level_mode_set(void)
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
- ok(!*expect_messages, "Expected message %#x, but didn't receive it.\n", *expect_messages);
+ ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
expect_messages = NULL;
ok(!screen_size.cx && !screen_size.cy, "Got unexpected screen size %ux%u.\n",
screen_size.cx, screen_size.cy);
--
2.0.4
More information about the wine-patches
mailing list