On Thu, Aug 21, 2008 at 11:08 PM, Vincent Povirk madewokherd+8cd9@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)