http://bugs.winehq.org/show_bug.cgi?id=30569
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |comdlg32 Summary|DVDRanger4: Error at |DVDRanger4: Error at |startup |startup (property sheet tab | |control) Ever Confirmed|0 |1
--- Comment #3 from Anastasius Focht focht@gmx.net 2012-05-02 05:54:48 CDT --- Hello,
confirming, it seems there is a problem with tab control in property sheet.
'winetricks comctl32' works around and lets the app successfully start.
The most obvious signs in trace logs are SendMessage() calls with NULL hwnd before the message box.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Pixbyte/DVDRanger4 ... $ WINEDEBUG=+tid,+seh,+relay,+propsheet,+commctrl wine ./DVDRanger4.exe --- snip ---
--- snip --- ... 0024:Call comctl32.PropertySheetW(083f480c) ret=00511e22 ... 0024:trace:propsheet:PropertySheetW (0x83f480c) 0024:trace:propsheet:PROPSHEET_CollectSheetInfoW ** PROPSHEETHEADER ** dwSize 52 dwFlags 00000708 hwndParent 0x200c8 hInstance (nil) pszCaption L"" nPages 7 pfnCallback 0x5112c5 ... 0024:trace:propsheet:PROPSHEET_PropertySheet startpage: 0 of 7 pages 0024:trace:propsheet:PROPSHEET_CreateDialog (0x1707f0) ... 0024:Call user32.CreateDialogIndirectParamW(00000000,00170b28,000200c8,7e125dd2,001707f0) ret=7e11ed13 ... 0024:trace:propsheet:PROPSHEET_CreateTabControl 0024:Call user32.GetDlgItem(00010182,00003020) ret=7e11ff07 0024:Ret user32.GetDlgItem() retval=00000000 ret=7e11ff07 0024:Call user32.SendMessageW(00000000,0000000b,00000000,00000000) ret=7e11ff2a 0024:Ret user32.SendMessageW() retval=00000000 ret=7e11ff2a 0024:Call user32.SendMessageW(00010182,0000133e,00000000,0032a73c) ret=7e11ffbb 0024:Call window proc 0x5b06e0 (hwnd=0x10182,msg=TCM_INSERTITEMW,wp=00000000,lp=0032a73c) ... --- snip ---
The failing GetDlgItem/SendMessageW (NULL hwnd) corresponds with this source:
http://source.winehq.org/git/wine.git/blob/9e0517ac6dea9e171564a2d4ae4cb868b...
--- snip --- 1176 SendMessageW(GetDlgItem(hwndTabCtrl, IDC_TABCONTROL), WM_SETREDRAW, 0, 0); --- snip ---
Later:
--- snip --- 0024:Call user32.GetDlgItem(00010182,00003020) ret=7e11ffe1 0024:Ret user32.GetDlgItem() retval=00000000 ret=7e11ffe1 0024:Call user32.SendMessageW(00000000,0000000b,00000001,00000000) ret=7e120004 0024:Ret user32.SendMessageW() retval=00000000 ret=7e120004 ... 0024:Call user32.SendMessageW(00000000,0000014e,00000002,00000000) ret=00412726 0024:Ret user32.SendMessageW() retval=00000000 ret=00412726 0024:Call user32.SendMessageW(00000000,000000f1,00000000,00000000) ret=0041522f 0024:Ret user32.SendMessageW() retval=00000000 ret=0041522f 0024:Call user32.SendMessageW(00000000,000000f1,00000000,00000000) ret=0041522f 0024:Ret user32.SendMessageW() retval=00000000 ret=0041522f 0024:Call user32.SendMessageW(00000000,000000f1,00000000,00000000) ret=0041522f 0024:Ret user32.SendMessageW() retval=00000000 ret=0041522f 0024:Call user32.SendMessageW(00000000,00000405,00000001,000003e8) ret=0041411f 0024:Ret user32.SendMessageW() retval=00000000 ret=0041411f 0024:Call user32.SendMessageW(00000000,00000400,00000000,00000000) ret=004140ed 0024:Ret user32.SendMessageW() retval=00000000 ret=004140ed ... 0024:Call user32.IsWindow(00000000) ret=0050ac46 0024:Ret user32.IsWindow() retval=00000000 ret=0050ac46 0024:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0032b698) ret=00535d8b 0024:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b8393b7 ip=7b8393b7 tid=0024 0024:trace:seh:raise_exception info[0]=19930520 0024:trace:seh:raise_exception info[1]=0032b6b4 0024:trace:seh:raise_exception info[2]=007599a8 0024:trace:seh:raise_exception eax=7b8263e1 ebx=7b8b06b0 ecx=19930520 edx=0032b5a4 esi=0032b684 edi=0032b600 0024:trace:seh:raise_exception ebp=0032b5e8 esp=0032b584 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 ... 0024:Call user32.MessageBoxW(000200c8,0032aa8c L"Encountered an improper argument.",083c12f8 L"DVDRanger4",00000010) ret=00505921 --- snip ---
You can dismiss the error message box if you move the splash screen that covers it. Clicking one of the tabs in main dialog property sheet causes app crash handler to be shown.
$ du -sh RangerSetup.exe 17M RangerSetup.exe
$ sha1sum RangerSetup.exe 8d8ca69891ddf80fbad14fcf69806c617d0f0042 RangerSetup.exe
$ wine --version wine-1.5.3-73-g93a0ca7
Regards