From 8ac29dd4a896bfd1ad3568f5d1ecfbc5ea95fbd6 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 4 Mar 2008 20:00:13 +0100 Subject: [PATCH] user32/tests: Fix most message tests to pass on Vista. --- dlls/user32/tests/msg.c | 109 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 106 insertions(+), 3 deletions(-) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index feb5d77a727..1ab5a0f6e06 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -121,6 +121,8 @@ static const struct message WmCreateOverlappedSeq[] = { { WM_GETMINMAXINFO, sent }, { WM_NCCREATE, sent }, { WM_NCCALCSIZE, sent|wparam, 0 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0094, sent|defwinproc|optional }, { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam, 0, 0 }, { WM_CREATE, sent }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, 0, 0 }, @@ -472,8 +474,10 @@ static const struct message WmHideOverlappedSeq[] = { /* DestroyWindow for a visible overlapped window */ static const struct message WmDestroyOverlappedSeq[] = { { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, 0, 0 }, + { 0x0090, sent|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE }, { WM_NCACTIVATE, sent|wparam, 0 }, { WM_ACTIVATE, sent|wparam, 0 }, @@ -914,6 +918,7 @@ static const struct message WmHideChildInvisibleParentSeq_2[] = { /* DestroyWindow for a visible child window */ static const struct message WmDestroyChildSeq[] = { { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent|parent|wparam, WM_DESTROY }, { WM_SHOWWINDOW, sent|wparam, 0 }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, @@ -936,6 +941,7 @@ static const struct message WmDestroyChildSeq[] = { /* DestroyWindow for a visible child window with invisible parent */ static const struct message WmDestroyInvisibleChildSeq[] = { { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent|parent|wparam, WM_DESTROY }, { WM_SHOWWINDOW, sent|wparam, 0 }, { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 }, @@ -1215,6 +1221,7 @@ static const struct message WmModalDialogSeq[] = { { WM_SETFOCUS, sent|parent|defwinproc }, { EVENT_SYSTEM_DIALOGEND, winevent_hook|wparam|lparam, 0, 0 }, { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 }, { WM_DESTROY, sent }, { WM_NCDESTROY, sent }, @@ -1276,16 +1283,27 @@ static const struct message WmSetMenuNonVisibleNoSizeChangeSeq[] = { static const struct message WmSetMenuVisibleSizeChangeSeq[] = { { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam, 0, 0 }, { WM_NCPAINT, sent }, /* wparam != 1 */ + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0091, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, { WM_GETTEXT, sent|defwinproc|optional }, { WM_ERASEBKGND, sent|optional }, { WM_ACTIVATE, sent|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED }, + { 0x0093, sent|optional }, { WM_NCCALCSIZE, sent|wparam|optional, 1 }, + { 0x0093, sent|defwinproc|optional }, { WM_NCPAINT, sent|optional }, /* wparam != 1 */ + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0091, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, { WM_ERASEBKGND, sent|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* XP sends a duplicate */ @@ -1308,10 +1326,16 @@ static const struct message WmDrawMenuBarSeq[] = { { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, { WM_NCPAINT, sent }, /* wparam != 1 */ + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0091, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, { WM_GETTEXT, sent|defwinproc|optional }, { WM_ERASEBKGND, sent|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE }, + { 0x0093, sent|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, { 0 } }; @@ -1390,6 +1414,14 @@ static const struct message WmSetScrollRangeHV_NC_Seq[] = { WM_NCCALCSIZE, sent|wparam, 1 }, { EVENT_OBJECT_REORDER, winevent_hook|wparam|lparam, 0, 0 }, { WM_NCPAINT, sent|optional }, + { WM_STYLECHANGING, sent|defwinproc|optional }, + { WM_STYLECHANGED, sent|defwinproc|optional }, + { WM_STYLECHANGING, sent|defwinproc|optional }, + { WM_STYLECHANGED, sent|defwinproc|optional }, + { WM_STYLECHANGING, sent|defwinproc|optional }, + { WM_STYLECHANGED, sent|defwinproc|optional }, + { WM_STYLECHANGING, sent|defwinproc|optional }, + { WM_STYLECHANGED, sent|defwinproc|optional }, { WM_GETTEXT, sent|defwinproc|optional }, { WM_GETTEXT, sent|defwinproc|optional }, { WM_ERASEBKGND, sent|optional }, @@ -1703,6 +1735,7 @@ static const struct message WmCreateMDIframeSeq[] = { /* DestroyWindow for MDI frame window, initially visible */ static const struct message WmDestroyMDIframeSeq[] = { { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, 0, 0 }, { WM_NCACTIVATE, sent|wparam|optional, 0 }, /* Win9x */ @@ -1754,6 +1787,7 @@ static const struct message WmHideMDIclientSeq[] = { /* DestroyWindow for MDI client window, initially visible */ static const struct message WmDestroyMDIclientSeq[] = { { HCBT_DESTROYWND, hook }, + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent|wparam, WM_DESTROY }, /* in MDI frame */ { WM_SHOWWINDOW, sent|wparam, 0 }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, @@ -1848,6 +1882,7 @@ static const struct message WmDestroyMDIchildVisibleSeq[] = { * while Win9x doesn't bother to set child window id according to * CLIENTCREATESTRUCT.idFirstChild */ + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent /*|wparam, WM_DESTROY*/ }, /* in MDI client */ { WM_SHOWWINDOW, sent|wparam, 0 }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, @@ -1933,6 +1968,7 @@ static const struct message WmDestroyMDIchildInvisibleSeq[] = { * while Win9x doesn't bother to set child window id according to * CLIENTCREATESTRUCT.idFirstChild */ + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent /*|wparam, WM_DESTROY*/ }, /* in MDI client */ { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 }, { WM_DESTROY, sent }, @@ -2149,6 +2185,9 @@ static const struct message WmCreateMDIchildVisibleMaxSeq3[] = { /* in MDI frame */ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED }, @@ -2162,12 +2201,17 @@ static const struct message WmCreateMDIchildVisibleMaxSeq3[] = { /* in MDI child */ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOACTIVATE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOCLIENTMOVE }, { WM_SIZE, sent|defwinproc|wparam, SIZE_MAXIMIZED }, + { 0x0093, sent|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI child */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI client */ { WM_NCCALCSIZE, sent|wparam|optional, 1 }, /* XP sends it to MDI frame */ + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI frame */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* XP sends a duplicate */ @@ -2286,6 +2330,7 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq2[] = { * while Win9x doesn't bother to set child window id according to * CLIENTCREATESTRUCT.idFirstChild */ + { 0x0090, sent|defwinproc|optional }, { WM_PARENTNOTIFY, sent /*|wparam, WM_DESTROY*/ }, /* in MDI client */ { WM_SHOWWINDOW, sent|defwinproc|wparam, 0 }, { WM_WINDOWPOSCHANGING, sent|wparam|defwinproc, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, @@ -2329,6 +2374,8 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq1[] = { /* in MDI frame */ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED }, @@ -2354,6 +2401,9 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq1[] = { /* in MDI frame */ { WM_WINDOWPOSCHANGING, sent|wparam|defwinproc, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam|defwinproc, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, { WM_WINDOWPOSCHANGED, sent|wparam|defwinproc, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED }, @@ -2372,7 +2422,12 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq1[] = { { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI child */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI client */ + { 0x0093, sent|defwinproc|optional }, { WM_NCCALCSIZE, sent|wparam|defwinproc|optional, 1 }, /* XP sends it to MDI frame */ + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI frame */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI child */ @@ -2383,8 +2438,12 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq1[] = { /* in MDI frame */ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 }, /* MDI frame */ + { 0x0093, sent|optional }, { WM_NCACTIVATE, sent|wparam, 0 }, { WM_MDIACTIVATE, sent }, @@ -2438,6 +2497,7 @@ static const struct message WmDestroyMDIchildVisibleMaxSeq1[] = { * while Win9x doesn't bother to set child window id according to * CLIENTCREATESTRUCT.idFirstChild */ + { 0x0090, sent|optional }, { WM_PARENTNOTIFY, sent /*|wparam, WM_DESTROY*/ }, /* in MDI client */ { WM_SHOWWINDOW, sent|wparam, 0 }, @@ -2533,6 +2593,18 @@ static const struct message WmMaximizeMDIchildInvisibleParentSeq[] = { /* in MDI frame */ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_NCCALCSIZE, sent|wparam, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0094, sent|defwinproc|optional }, + { 0x0094, sent|defwinproc|optional }, + { 0x0094, sent|defwinproc|optional }, + { 0x0094, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0091, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED }, @@ -2554,7 +2626,16 @@ static const struct message WmMaximizeMDIchildInvisibleParentSeq[] = { { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* MDI child XP */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* MDI client XP */ /* in MDI frame */ + { 0x0093, sent|optional }, { WM_NCCALCSIZE, sent|wparam|optional, 1 }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0093, sent|defwinproc|optional }, + { 0x0091, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, + { 0x0092, sent|defwinproc|optional }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* MDI frame XP */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* MDI frame XP */ { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* MDI child XP */ @@ -5111,7 +5192,8 @@ static void test_paint_messages(void) trace("testing InvalidateRgn(0, NULL, FALSE)\n"); SetLastError(0xdeadbeef); ok(!InvalidateRgn(0, NULL, FALSE), "InvalidateRgn(0, NULL, FALSE) should fail\n"); - ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE, "wrong error code %d\n", GetLastError()); + ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || GetLastError() == 0xdeadbeef, + "wrong error code %d\n", GetLastError()); check_update_rgn( hwnd, 0 ); flush_events(); ok_sequence( WmEmptySeq, "WmEmptySeq", FALSE ); @@ -5539,7 +5621,8 @@ static void test_interthread_messages(void) SetLastError(0xdeadbeef); ok(!DestroyWindow(wnd_event.hwnd), "DestroyWindow succeded\n"); - ok(GetLastError() == ERROR_ACCESS_DENIED, "wrong error code %d\n", GetLastError()); + ok(GetLastError() == ERROR_ACCESS_DENIED || GetLastError() == 0xdeadbeef, + "wrong error code %d\n", GetLastError()); proc = (WNDPROC)GetWindowLongPtrA(wnd_event.hwnd, GWLP_WNDPROC); ok(proc != NULL, "GetWindowLongPtrA(GWLP_WNDPROC) error %d\n", GetLastError()); @@ -7610,7 +7693,9 @@ static void test_scrollwindowex(void) static const struct message destroy_window_with_children[] = { { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam, 0, 0 }, /* popup */ { HCBT_DESTROYWND, hook|lparam, 0, WND_PARENT_ID }, /* parent */ + { 0x0090, sent|optional }, { HCBT_DESTROYWND, hook|lparam, 0, WND_POPUP_ID }, /* popup */ + { 0x0090, sent|optional }, { EVENT_OBJECT_DESTROY, winevent_hook|wparam|lparam, 0, 0 }, /* popup */ { WM_DESTROY, sent|wparam|lparam, 0, WND_POPUP_ID }, /* popup */ { WM_CAPTURECHANGED, sent|wparam|lparam, 0, WND_POPUP_ID }, /* popup */ @@ -7930,7 +8015,10 @@ static const struct message sl_edit_setfocus[] = { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 2 }, { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_SETFOCUS, sent|wparam, 0 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 10 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 15 }, { WM_CTLCOLOREDIT, sent|parent }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { WM_COMMAND, sent|parent|wparam, MAKEWPARAM(ID_EDIT, EN_SETFOCUS) }, @@ -7943,6 +8031,8 @@ static const struct message ml_edit_setfocus[] = { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 2 }, { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_SETFOCUS, sent|wparam, 0 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 10 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { WM_COMMAND, sent|parent|wparam, MAKEWPARAM(ID_EDIT, EN_SETFOCUS) }, @@ -7974,7 +8064,9 @@ static const struct message sl_edit_lbutton_down[] = { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 2 }, { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_SETFOCUS, sent|wparam|defwinproc, 0 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 10 }, { WM_CTLCOLOREDIT, sent|parent }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, @@ -7982,6 +8074,7 @@ static const struct message sl_edit_lbutton_down[] = { EVENT_SYSTEM_CAPTURESTART, winevent_hook|wparam|lparam, 0, 0 }, { EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { WM_CTLCOLOREDIT, sent|parent|optional }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { 0 } @@ -7995,6 +8088,8 @@ static const struct message ml_edit_lbutton_down[] = { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 2 }, { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_SETFOCUS, sent|wparam|defwinproc, 0 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 10 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { WM_COMMAND, sent|parent|wparam, MAKEWPARAM(ID_EDIT, EN_SETFOCUS) }, @@ -9020,7 +9115,7 @@ static const struct message WmShowNoActivate_2[] = { { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCOPYBITS|0x8000 }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|wparam|defwinproc, SIZE_RESTORED }, - { HCBT_SETFOCUS, hook }, + { HCBT_SETFOCUS, hook|optional }, { HCBT_ACTIVATE, hook|optional }, /* win2003 doesn't send it */ { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE }, /* win2003 doesn't send it */ { HCBT_SETFOCUS, hook|optional }, /* win2003 doesn't send it */ @@ -9052,6 +9147,9 @@ static const struct message WmRestore_1[] = { static const struct message WmRestore_2[] = { { WM_SHOWWINDOW, sent|wparam, 1 }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE }, + { HCBT_ACTIVATE, hook|optional }, /* win2000 doesn't send it */ + { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE }, /* win2000 doesn't send it */ + { HCBT_SETFOCUS, hook|optional }, /* win2000 doesn't send it */ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE }, { 0 } }; @@ -9194,6 +9292,9 @@ static const struct message WmShowMaximized_3[] = { { HCBT_MINMAX, hook|lparam, 0, SW_SHOWMAXIMIZED }, { WM_GETMINMAXINFO, sent }, { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|0x8000 }, + { HCBT_ACTIVATE, hook|optional }, /* win2000 doesn't send it */ + { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE }, /* win2000 doesn't send it */ + { HCBT_SETFOCUS, hook|optional }, /* win2000 doesn't send it */ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|0x8000 }, { WM_MOVE, sent|defwinproc }, { WM_SIZE, sent|wparam|defwinproc, SIZE_MAXIMIZED }, @@ -9379,7 +9480,9 @@ static const struct message WmDefDlgSetFocus_1[] = { { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 2 }, { EVENT_OBJECT_FOCUS, winevent_hook|wparam|lparam, OBJID_CLIENT, 0 }, { WM_SETFOCUS, sent|wparam, 0 }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 10 }, { WM_CTLCOLOREDIT, sent }, + { WM_IME_NOTIFY, sent|wparam|defwinproc|optional, 11 }, { EVENT_OBJECT_CREATE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, OBJID_CARET, 0 }, { EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, OBJID_CARET, 0 },