[PATCH] shell32 - handle WM_CLOSE in the Control Panel window (fixed)
Steven Edwards
winehacker at gmail.com
Fri Aug 22 00:31:08 CDT 2008
On Thu, Aug 21, 2008 at 11:08 PM, Vincent Povirk
<madewokherd+8cd9 at gmail.com> wrote:
> I think the proper fix is for appwiz.cpl to process the CPL_STOP and
> CPL_EXIT messages (see
> http://msdn.microsoft.com/en-us/library/aa454656.aspx)
I still think there could be a bug as I have IE installed and I assume
the internet options dialog has the CPL_EXIT case and if I exit the
control panel with that applet loaded I get the following output
err:seh:setup_exception_record stack overflow 1176 bytes in thread
0017 eip 7bc78c4a esp 00240e98 stack 0x240000-0x241000-0x340000
I'm going to look tomorrow at adding the CPL_EXIT and CPL_STOP
messages to appwiz so we can get a better idea of what exactly is
going on.
Here is a backtrace from winedbg exiting the control panel with the
internet options dialog
=>1 0x7bc65f95 check_atl_thunk+0x65(rec=<is not available>,
context=0x33bff4)
[/home/sedwards/source/wine-git/dlls/ntdll/signal_i386.c:1030] in
ntdll (0x0033bfc4)
2 0x7bc66114 raise_segv_exception+0xa4(rec=<register ESI not in
topmost frame>, context=<register EDI not in topmost frame>)
[/home/sedwards/source/wine-git/dlls/ntdll/signal_i386.c:1210] in
ntdll (0x0033bfe4)
3 0xdeadbabe (0x0033c344)
4 0x7eb74738 call_dialog_proc+0x68(hwnd=<register EDI not in topmost
frame>, msg=0x18, wp=0x0, lp=0x0, result=0x33c3b4, arg=0x11a0431)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:479] in user32
(0x0033c384)
5 0x7eb77f5a WINPROC_CallDlgProcW+0x5a(func=0xffff0027,
hwnd=0x1003e, msg=0x18, wParam=<register EDI not in topmost frame>,
lParam=0x0) [/home/sedwards/source/wine-git/dlls/user32/winproc.c:2394]
in user32 (0x0033c3c4)
6 0x7eaff2d5 DefDlgProcW+0x85(hwnd=<register ESI not in topmost
frame>, msg=0x18, wParam=0x0, lParam=0x0)
[/home/sedwards/source/wine-git/dlls/user32/defdlg.c:488] in user32
(0x0033c3f4)
7 0x7eb728da WINPROC_wrapper+0x1a() in user32 (0x0033c424)
8 0x7eb72fce call_window_proc+0x6e(hwnd=<register EDI not in topmost
frame>, msg=0x18, wp=0x0, lp=0x0, result=0x33c508, arg=0x7eaff250)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:457] in user32
(0x0033c464)
9 0x7eb792f1 WINPROC_call_window+0xd1(hwnd=<register ESI not in
topmost frame>, msg=0x18, wParam=0x0, lParam=0x0, result=0x33c508,
unicode=0x1, mapping=0x1)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:2207] in user32
(0x0033c4a4)
10 0x7eb3a8ca call_window_proc+0xca(hwnd=<register ESI not in
topmost frame>, msg=0x18, wparam=0x0, lparam=0x0, unicode=0x1,
same_thread=0x1, mapping=0x1)
[/home/sedwards/source/wine-git/dlls/user32/message.c:1639] in user32
(0x0033c514)
11 0x7eb3d862 send_message+0x222(info=<register EDI not in topmost
frame>, res_ptr=0x33c5b0, unicode=<register ESI not in topmost frame>)
[/home/sedwards/source/wine-git/dlls/user32/message.c:2463] in user32
(0x0033c574)
12 0x7eb3dcda SendMessageW+0x4a(hwnd=0x1003e, msg=0x18, wparam=0x0,
lparam=0x0) [/home/sedwards/source/wine-git/dlls/user32/message.c:2586]
in user32 (0x0033c5b4)
13 0x7eb71d06 show_window+0x4d6(hwnd=0x1003e, cmd=<register ESI not
in topmost frame>)
[/home/sedwards/source/wine-git/dlls/user32/winpos.c:1046] in user32
(0x0033c624)
14 0x7eb71e4b ShowWindow+0x3b(hwnd=<register ESI not in topmost
frame>, cmd=0x0)
[/home/sedwards/source/wine-git/dlls/user32/winpos.c:1154] in user32
(0x0033c644)
15 0x7eb674fc DestroyWindow+0x1bc(hwnd=0x1003e)
[/home/sedwards/source/wine-git/dlls/user32/win.c:1502] in user32
(0x0033c684)
16 0x7ea4349b PROPSHEET_CleanUp+0xcb(hwndDlg=<is not available>)
[/home/sedwards/source/wine-git/dlls/comctl32/propsheet.c:2720] in
comctl32 (0x0033c6b4)
17 0x7ea46ef5 PROPSHEET_DialogProc+0x595(hwnd=0x10032,
uMsg=<register ESI not in topmost frame>, wParam=0x0, lParam=0x0)
[/home/sedwards/source/wine-git/dlls/comctl32/propsheet.c:3534] in
comctl32 (0x0033c9e4)
18 0x7eb728da WINPROC_wrapper+0x1a() in user32 (0x0033ca14)
19 0x7eb74738 call_dialog_proc+0x68(hwnd=<register EDI not in
topmost frame>, msg=0x2, wp=0x0, lp=0x0, result=0x33ca84,
arg=0x7ea46960)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:479] in user32
(0x0033ca54)
20 0x7eb77f5a WINPROC_CallDlgProcW+0x5a(func=0xffff0026,
hwnd=0x10032, msg=0x2, wParam=<register EDI not in topmost frame>,
lParam=0x0) [/home/sedwards/source/wine-git/dlls/user32/winproc.c:2394]
in user32 (0x0033ca94)
21 0x7eaff2d5 DefDlgProcW+0x85(hwnd=<register ESI not in topmost
frame>, msg=0x2, wParam=0x0, lParam=0x0)
[/home/sedwards/source/wine-git/dlls/user32/defdlg.c:488] in user32
(0x0033cac4)
22 0x7eb728da WINPROC_wrapper+0x1a() in user32 (0x0033caf4)
23 0x7eb72fce call_window_proc+0x6e(hwnd=<register EDI not in
topmost frame>, msg=0x2, wp=0x0, lp=0x0, result=0x33cbd8,
arg=0x7eaff250)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:457] in user32
(0x0033cb34)
24 0x7eb792f1 WINPROC_call_window+0xd1(hwnd=<register ESI not in
topmost frame>, msg=0x2, wParam=0x0, lParam=0x0, result=0x33cbd8,
unicode=0x1, mapping=0x10032)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:2207] in user32
(0x0033cb74)
25 0x7eb3a8ca call_window_proc+0xca(hwnd=<register ESI not in
topmost frame>, msg=0x2, wparam=0x0, lparam=0x0, unicode=0x1,
same_thread=0x1, mapping=0x10032)
[/home/sedwards/source/wine-git/dlls/user32/message.c:1639] in user32
(0x0033cbe4)
26 0x7eb3d862 send_message+0x222(info=<register EDI not in topmost
frame>, res_ptr=0x33cc80, unicode=<register ESI not in topmost frame>)
[/home/sedwards/source/wine-git/dlls/user32/message.c:2463] in user32
(0x0033cc44)
27 0x7eb3dcda SendMessageW+0x4a(hwnd=0x10032, msg=0x2, wparam=0x0,
lparam=0x0) [/home/sedwards/source/wine-git/dlls/user32/message.c:2586]
in user32 (0x0033cc84)
28 0x7eb66186 WIN_SendDestroyMsg+0x66(hwnd=<register ESI not in
topmost frame>)
[/home/sedwards/source/wine-git/dlls/user32/win.c:1436] in user32
(0x0033cce4)
29 0x7eb67521 DestroyWindow+0x1e1(hwnd=0x10032)
[/home/sedwards/source/wine-git/dlls/user32/win.c:1540] in user32
(0x0033cd24)
30 0x7ea448a0 PROPSHEET_PropertySheet+0x2c0(psInfo=0x141718,
unicode=<is not available>)
[/home/sedwards/source/wine-git/dlls/comctl32/propsheet.c:2803] in
comctl32 (0x0033cd84)
31 0x7ea450cf PropertySheetW+0x1cf(lppsh=0x33cea4)
[/home/sedwards/source/wine-git/dlls/comctl32/propsheet.c:2900] in
comctl32 (0x0033cdf4)
32 0x011aac70 (0x0033ce2c)
33 0x011a32bd (0x0033cedc)
34 0x011a06b0 (0x0033d0f8)
35 0x7ed733cd Control_WndProc+0xa3d(hWnd=0x10026, wMsg=0x4e,
lParam1=0x3e8, lParam2=0x33e4a0)
[/home/sedwards/source/wine-git/dlls/shell32/control.c:501] in shell32
(0x0033e238)
36 0x7eb728da WINPROC_wrapper+0x1a() in user32 (0x0033e268)
37 0x7eb72fce call_window_proc+0x6e(hwnd=<register EDI not in
topmost frame>, msg=0x4e, wp=0x3e8, lp=0x33e4a0, result=0x33e34c,
arg=0x7ed72990)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:457] in user32
(0x0033e2a8)
38 0x7eb792f1 WINPROC_call_window+0xd1(hwnd=<register ESI not in
topmost frame>, msg=0x4e, wParam=0x3e8, lParam=0x33e4a0,
result=0x33e34c, unicode=0x1, mapping=0x1)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:2207] in user32
(0x0033e2e8)
39 0x7eb3a8ca call_window_proc+0xca(hwnd=<register ESI not in
topmost frame>, msg=0x4e, wparam=0x3e8, lparam=0x33e4a0, unicode=0x1,
same_thread=0x1, mapping=0x1)
[/home/sedwards/source/wine-git/dlls/user32/message.c:1639] in user32
(0x0033e358)
40 0x7eb3d862 send_message+0x222(info=<register EDI not in topmost
frame>, res_ptr=0x33e3f4, unicode=<register ESI not in topmost frame>)
[/home/sedwards/source/wine-git/dlls/user32/message.c:2463] in user32
(0x0033e3b8)
41 0x7eb3dcda SendMessageW+0x4a(hwnd=0x10026, msg=0x4e,
wparam=0x3e8, lparam=0x33e4a0)
[/home/sedwards/source/wine-git/dlls/user32/message.c:2586] in user32
(0x0033e3f8)
42 0x7ea2089b notify_hdr+0x6b(infoPtr=<register EDI not in topmost
frame>, code=0xfffffffd, pnmh=<register ESI not in topmost frame>)
[/home/sedwards/source/wine-git/dlls/comctl32/listview.c:737] in
comctl32 (0x0033e428)
43 0x7ea2864f notify_click+0x16f(infoPtr=0x133560, code=0xfffffffd,
lvht=0x33e578) [/home/sedwards/source/wine-git/dlls/comctl32/listview.c:806]
in comctl32 (0x0033e4d8)
44 0x7ea28955 LISTVIEW_LButtonDblClk+0xa5(infoPtr=<register EDI not
in topmost frame>, wKey=<is not available>, x=0x66, y=0x1f)
[/home/sedwards/source/wine-git/dlls/comctl32/listview.c:8557] in
comctl32 (0x0033e598)
45 0x7ea33cbe LISTVIEW_WindowProc+0x3de(hwnd=0x1002a, uMsg=0x203,
wParam=0x1, lParam=0x1f)
[/home/sedwards/source/wine-git/dlls/comctl32/listview.c:9926] in
comctl32 (0x0033ee98)
46 0x7eb728da WINPROC_wrapper+0x1a() in user32 (0x0033eec8)
47 0x7eb72fce call_window_proc+0x6e(hwnd=<register EDI not in
topmost frame>, msg=0x203, wp=0x1, lp=0x1f0066, result=0x33ef78,
arg=0x7ea338e0)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:457] in user32
(0x0033ef08)
48 0x7eb792f1 WINPROC_call_window+0xd1(hwnd=<register ESI not in
topmost frame>, msg=0x203, wParam=0x1, lParam=0x1f0066,
result=0x33ef78, unicode=0x1, mapping=0x4)
[/home/sedwards/source/wine-git/dlls/user32/winproc.c:2207] in user32
(0x0033ef48)
49 0x7eb3a186 DispatchMessageW+0x96(msg=<register EDI not in topmost
frame>) [/home/sedwards/source/wine-git/dlls/user32/message.c:3125] in
user32 (0x0033ef88)
50 0x7ed74177 Control_RunDLLW+0x3f7(hWnd=0x10020, hInst=0x0,
cmd=0x132408, nCmdShow=0x5)
[/home/sedwards/source/wine-git/dlls/shell32/control.c:620] in shell32
(0x0033fcc8)
51 0x7ed7476d Control_RunDLLA+0xfd(hWnd=0x10020, hInst=0x0,
cmd=0x7ee73b43, nCmdShow=0x5)
[/home/sedwards/source/wine-git/dlls/shell32/control.c:825] in shell32
(0x0033fcf8)
52 0x7ee735ea launch+0x3a(what=<register ESI not in topmost frame>)
[/home/sedwards/source/wine-git/programs/control/control.c:31] in
control (0x0033fd18)
53 0x7ee73665 WinMain+0x65(hInst=0x7ee70000, hPrev=0x0,
lpszCmdLine=0x110b10, nCmdShow=0x1)
[/home/sedwards/source/wine-git/programs/control/control.c:70] in
control (0x0033fe58)
54 0x7ee73963 main+0xa3()
[/home/sedwards/source/wine-git/dlls/winecrt0/exe_main.c:48] in
control (0x0033fed8)
55 0x7ee7388b __wine_spec_exe_entry+0x5b(peb=0x7ffdf000)
[/home/sedwards/source/wine-git/dlls/winecrt0/exe_entry.c:36] in
control (0x0033ff08)
56 0x7b877ef7 start_process+0xc7(arg=0x0)
[/home/sedwards/source/wine-git/dlls/kernel32/process.c:904] in
kernel32 (0x0033ffe8)
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
More information about the wine-devel
mailing list