http://bugs.winehq.org/show_bug.cgi?id=4009
------- Additional Comments From the3dfxdude@gmail.com 2006-19-08 22:22 ------- This is what Diablo is doing.
0x10020 "#32769" | - 0x10022 "Wine Systray Listener" "Shell_TrayWnd" | - 0x10024 "DIABLO" "DIABLO" ` - 0x10026 "" ""SDlgDialog" | - 0x10028 "Copyright \xa9 1996 Blizzard Entertainment" "SDlgStatic" ` - 0x1002a "" "SDlgStatic"
10026 plays intro video. After destroyed:
0x10020 "#32769" | - 0x10022 "Wine Systray Listener" | - 0x10024 "DIABLO" "DIABLO" ` - 0x20026 "" "SDlgDialog" | - 0x2002a "Single Player" "Button" | - 0x20028 "Multi Player" "Button" | - 0x1002c "Replay Intro" "Button" | - 0x1002e "Show Credits" "Button" | - 0x10030 "Exit Diablo" "Button" | - 0x10032 "" "SDlgStatic" ` - 0x10034 "" "SDlgStatic"
10024 is what is being asked to update the screen. Unfortunately the actual visual interface is contained in the 0x20026 branch. So no wonder nothing is seen. The hack causes explorer which manages the desktop to repaint along with all its childs on mouse movements?? My guess is that either 0x20026 is supposed to be attached to Diablo main window or that 0x20026 is being handled wrong.
BTW Vincent, your window chart has to be out of order because even though the desktop is not created when worms calls CreateWindowEx, the desktop is created first and everything is created as child of desktop.