http://bugs.winehq.org/show_bug.cgi?id=22750
--- Comment #4 from Andrew Eikum aeikum@codeweavers.com 2010-05-18 13:35:20 --- So of course this is more complicated than I hoped. Apparently I haven't learned to not trust MSDN yet...
When a window is created with CreateDialogIndirectParam, it can have whatever exStyle, but the effects of some of the flags are ignored. However, future calls to GetWindowLong(GWL_EXSTYLE) yield the same exStyle flags as you passed in, meaning the original exStyle hangs around; the ignored flags aren't simply masked out. This means it's possible to have a dialog with WS_EX_MDICHILD despite not having an MDI owner window. Great.
As expected, hacking around the MDI sanity checks in CreateWindowEx just leads to crashes later, as Wine treats the window as you'd expect for an MDICHILD. A hack to get both cases working is just to mask out the WS_EX_MDICHILD, but that's obviously incorrect based on the above.
If a fix is not found for this before 1.2, I suggest reverting my original commit (897f11d33178). Better to have the majority of cases working than the obscure minority case I was attempting to fix.