Hi,
I've been trying out wine with Word 2000 using builtin DLLs, both in desktop and managed mode. Mostly it works fine, but there's a few problems that detract from the "user experience". Any pointers on where to start looking for these bugs would be much appreciated -- relay is around 46 MiB before any of the problems surface :^/
1. Whenever word decides to run their help agent, on my machine C:\WINDOWS\Msagent\AGENTSVR.EXE, I get messages: fixme:hook:NotifyWinEvent( 4, <HWND 1>, -3, 0)-stub! fixme:hook:NotifyWinEvent( 5, <HWND 1>, -3, 0)-stub! fixme:hook:NotifyWinEvent( 32773, <HWND 2>, -4, 0)-stub! Word and the agent then freezes. Killing off the agent, e.g. "kill $(ps ax|grep wine.*AGEN|awk '{print $1}')" allows word to recover ...
2. Dragging a dialogue box around causes a corruption on the screen (see [1]). When I release the button, the window moves, along with any corruption. Forcing a refresh (eg hiding the desktop window behind another one), clears up the corruption.
3. Normal resizing works fine, but word has an extra resizable corner (which isn't rendered correctly under wine, see [2]). This has had variable success in the past: when it fails, the window is resized so the left edge of the window shoots off the left edge of the screen, seemingly ignoring whatever the mouse does. With current CVS it seems to always fail in this way.
4. Exiting word, it tries to save NORMAL.DOT, saying "The disk is full or too many files are open. C:\windows...\Templates\Normal.dot" causing: fixme:storage:StorageImpl_Commit (4): stub! fixme:storage:StorageImpl_Commit (4): stub! fixme:storage:StorageImpl_Commit (4): stub! fixme:ole:WriteFmtUserTypeStg (0x402b5550,17c,L"Microsoft Word Document") stub! fixme:hook:NotifyWinEvent (32774,0x00030031,52,3)-stub! fixme:hook:NotifyWinEvent (32773,0x00030031,-4,33)-stub! fixme:hook:NotifyWinEvent (32774,0x00030031,26,7)-stub! fixme:hook:NotifyWinEvent (32777,0x00030031,52,0)-stub! fixme:hook:NotifyWinEvent (32774,0x00030031,52,3)-stub! So I guess the storage is at fault.
5. Exiting Word causes wine to crash. This used to work ok (upto a few days ago). Backtrace shows a few random references to _end+0xd27f0 (etc..), followed by PE_InitDLL (pe_image.c:628 nt=1, module=1140195328, type=0, lpReserved=0x01), followed by module.c:159 .... seems to be trying to initialise winmm.dll, failing and jumping into blue yonder.
On a whim, I reversed Eric's recent always-unload-winmm patch [3]. This "fixed" the problem. So, is wine attempting (and failing) to load winmm in order to unload it?
(6. The debugger froze whilst trying to dereference the wm pointer in MODULE_InitDLL, it managed to print some of the structure before hanging ... but I think that's enough bugs for now ...)
Cheers,
Paul.
[1] - http://www.astro.gla.ac.uk/users/paulm/corner.png [2] - http://www.astro.gla.ac.uk/users/paulm/corrupt.png [3] - http://cvs.winehq.com/patch.py?id=6212 ---- Paul Millar