http://bugs.winehq.org/show_bug.cgi?id=10467
--- Comment #4 from Anastasius Focht focht@gmx.net 2007-11-16 08:19:02 --- Created an attachment (id=9199) --> (http://bugs.winehq.org/attachment.cgi?id=9199) patch which fixes empty LPARAM for initial CDM_xxx messages in FILEDLG95_HandleCustomDialogMessages
Hello,
again :-)
Prerequisite:
1) wine-0.9.49 (or GIT) 2) successful installation of .NET 2.0 Framework 3) "l_intl.nls" copied from windows installation to wine system32 4) PEB loader lock patch from http://bugs.winehq.org/attachment.cgi?id=9195 5) true type fonts correctly installed for native gdiplus (comment #2) 6) WinStation patch from http://bugs.winehq.org/attachment.cgi?id=9198
----
With that stuff in place, the .NET app starts but as soon as the "browse" button is clicked it crashes. Turns out this probably not .NET related bug but I added it here because it's needed to get this app to work.
--- snip --- fixme:commdlg:GetFileName95 Flags 0x00800000 not yet implemented First chance exception: page fault on write access to 0x00000000 in 32-bit code (0x75789bca). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:75789bca ESP:0034c8f0 EBP:0034cd5c EFLAGS:00210247( - 00 RIZP1C) EAX:6165facc EBX:61665600 ECX:00000000 EDX:0034ed7c ESI:001ba260 EDI:00000000 Stack dump: 0x0034c8f0: 61647762 00000000 001ba260 00000002 0x0034c900: 00000000 03a28298 00000000 00000000 0x0034c910: 0000000f 00000000 00000000 0034c90e 0x0034c920: 00000000 00040068 0034ed7c 00000000 0x0034c930: 00000000 02f842c4 00000000 00000000 0x0034c940: 02f80010 00000000 00000000 00000001 Backtrace: =>1 0x75789bca (0x0034cd5c) 2 0x616484a1 FileOpenDlgProc95+0x661(hwnd=0x40068, uMsg=0x464, wParam=0x0, lParam=0x0) [/usr/local/src/wine/dlls/comdlg32/filedlg.c:1118] in comdlg32 (0x0034d41c) 3 0x602b653a WINPROC_wrapper+0x1a() in user32 (0x0034d44c) 4 0x602b8368 call_dialog_proc+0x68(hwnd=<register EDI not in topmost frame>, msg=0x464, wp=0x0, lp=0x0, result=0x34d4bc, arg=0x61647e40) [/usr/local/src/wine/dlls/user32/winproc.c:479] in user32 (0x0034d48c) 5 0x602baa8a WINPROC_CallDlgProcW+0x5a(func=0xffff003d, hwnd=0x40068, msg=0x464, wParam=<register EDI not in topmost frame>, lParam=0x0) [/usr/local/src/wine/dlls/user32/winproc.c:2394] in user32 (0x0034d4cc) 6 0x6024aeb5 DefDlgProcW+0x85(hwnd=<register ESI not in topmost frame>, msg=0x464, wParam=0x0, lParam=0x0) [/usr/local/src/wine/dlls/user32/defdlg.c:488] in user32 (0x0034d4fc) 7 0x602b653a WINPROC_wrapper+0x1a() in user32 (0x0034d52c) 8 0x602b6bde call_window_proc+0x6e(hwnd=<register EDI not in topmost frame>, msg=0x464, wp=0x0, lp=0x0, result=0x34d610, arg=0x6024ae30) [/usr/local/src/wine/dlls/user32/winproc.c:457] in user32 (0x0034d56c) .. --- snip ---
In short: while trying to create a file open dialog, FILEDLG95_* sends a series of "change" notifications in WM_INITDIALOG. e.g. CDN_INITDONE, CDN_FOLDERCHANGE, CDN_SELCHANGE. Unfortunately L/WPARAM parameter validation for CDM_GETFILEPATH and CDM_GETSPEC is somewhat missing in FILEDLG95_HandleCustomDialogMessages(). It crashes there while dereferencing NULL ptr.
Attached patch checks lParam before doing anything useful.
With that patch in place, this little .NET 2.0 app seems to work fine. It might be that other .NET 1.x/2.0 apps might start working too.
As said in the beginning .. there are probably many issues left. But this is a start ;-)
Regards