user32/tests: Test window style in HCBT_CREATEWND hook.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a9eee150ad
commit
08f60ee991
|
@ -4432,6 +4432,35 @@ typedef struct
|
||||||
DWORD exstyle;
|
DWORD exstyle;
|
||||||
} test_style;
|
} test_style;
|
||||||
|
|
||||||
|
static LRESULT WINAPI cbt_proc(int ncode, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
CBT_CREATEWNDW* c = (CBT_CREATEWNDW*)lparam;
|
||||||
|
HWND hwnd = (HWND)wparam;
|
||||||
|
test_style *ts;
|
||||||
|
DWORD style;
|
||||||
|
|
||||||
|
if (ncode != HCBT_CREATEWND)
|
||||||
|
return CallNextHookEx(NULL, ncode, wparam, lparam);
|
||||||
|
|
||||||
|
ts = c->lpcs->lpCreateParams;
|
||||||
|
ok(ts != NULL, "lpCreateParams not set\n");
|
||||||
|
todo_wine_if(!(ts->cs_style & WS_CHILD) || (ts->cs_style & WS_POPUP))
|
||||||
|
ok(c->lpcs->style == ts->cs_style, "style = 0x%08x, expected 0x%08x\n",
|
||||||
|
c->lpcs->style, ts->cs_style);
|
||||||
|
ok(c->lpcs->dwExStyle == ts->cs_exstyle, "exstyle = 0x%08x, expected 0x%08x\n",
|
||||||
|
c->lpcs->dwExStyle, ts->cs_exstyle);
|
||||||
|
|
||||||
|
style = GetWindowLongW(hwnd, GWL_STYLE);
|
||||||
|
todo_wine_if(!(ts->cs_style & WS_CHILD) || (ts->cs_style & WS_POPUP))
|
||||||
|
ok(style == ts->cs_style, "style = 0x%08x, expected 0x%08x\n",
|
||||||
|
style, ts->cs_style);
|
||||||
|
style = GetWindowLongW(hwnd, GWL_EXSTYLE);
|
||||||
|
todo_wine_if(ts->exstyle != ts->cs_exstyle)
|
||||||
|
ok(style == (ts->cs_exstyle & ~WS_EX_LAYERED),
|
||||||
|
"exstyle = 0x%08x, expected 0x%08x\n", style, ts->cs_exstyle);
|
||||||
|
return CallNextHookEx(NULL, ncode, wparam, lparam);
|
||||||
|
}
|
||||||
|
|
||||||
static LRESULT WINAPI StyleCheckProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
static LRESULT WINAPI StyleCheckProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||||
{
|
{
|
||||||
CREATESTRUCTA *cs;
|
CREATESTRUCTA *cs;
|
||||||
|
@ -4491,6 +4520,7 @@ static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyle
|
||||||
test_style ts;
|
test_style ts;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
HWND hwndParent = NULL;
|
HWND hwndParent = NULL;
|
||||||
|
HHOOK hook;
|
||||||
|
|
||||||
ts.cs_style = dwStyleIn;
|
ts.cs_style = dwStyleIn;
|
||||||
ts.cs_exstyle = dwExStyleIn;
|
ts.cs_exstyle = dwExStyleIn;
|
||||||
|
@ -4507,11 +4537,14 @@ static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyle
|
||||||
{
|
{
|
||||||
hwndParent = CreateWindowExA(0, "static", NULL,
|
hwndParent = CreateWindowExA(0, "static", NULL,
|
||||||
WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
|
WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
|
||||||
|
ok(hwndParent != NULL, "CreateWindowExA failed\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hook = SetWindowsHookExW(WH_CBT, cbt_proc, 0, GetCurrentThreadId());
|
||||||
hwnd = CreateWindowExA(dwExStyleIn, (LPCSTR)MAKEINTATOM(atomStyleCheckClass), NULL,
|
hwnd = CreateWindowExA(dwExStyleIn, (LPCSTR)MAKEINTATOM(atomStyleCheckClass), NULL,
|
||||||
dwStyleIn, 0, 0, 0, 0, hwndParent, NULL, NULL, &ts);
|
dwStyleIn, 0, 0, 0, 0, hwndParent, NULL, NULL, &ts);
|
||||||
assert(hwnd);
|
ok(hwnd != NULL, "CreateWindowExA failed\n");
|
||||||
|
UnhookWindowsHookEx(hook);
|
||||||
|
|
||||||
flush_events( TRUE );
|
flush_events( TRUE );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue