http://bugs.winehq.com/show_bug.cgi?id=52
------- Additional Comments From Speeddymon@yahoo.com 2003-25-06 10:47 ------- Well, in sweeping this place, I decided to take another look at this bug..
Your last comment Francois says that you believe the fact that LockWindowUpdate is implemented only as a stub function is the cause of the problem..
In looking at msdn articles on this function, I have turned up this:
The LockWindowUpdate function disables or enables drawing in the specified window. Only one window can be locked at a time.
BOOL LockWindowUpdate( HWND hWndLock // handle to window ); Parameters hWndLock [in] Specifies the window in which drawing will be disabled. If this parameter is NULL, drawing in the locked window is enabled. Return Values If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero, indicating that an error occurred or another window was already locked.
Windows NT/2000/XP: To get extended error information, call GetLastError.
Remarks If an application with a locked window (or any locked child windows) calls the GetDC, GetDCEx, or BeginPaint function, the called function returns a device context with a visible region that is empty. This will occur until the application unlocks the window by calling LockWindowUpdate, specifying a value of NULL for hWndLock.
If an application attempts to draw within a locked window, the system records the extent of the attempted operation in a bounding rectangle. When the window is unlocked, the system invalidates the area within this bounding rectangle, forcing an eventual WM_PAINT message to be sent to the previously locked window and its child windows. If no drawing has occurred while the window updates were locked, no area is invalidated.
LockWindowUpdate does not make the specified window invisible and does not clear the WS_VISIBLE style bit.
A locked window cannot be moved.
Requirements Windows NT/2000/XP: Included in Windows NT 3.1 and later. Windows 95/98/Me: Included in Windows 95 and later. Header: Declared in Winuser.h; include Windows.h. Library: Use User32.lib. --
Hopefully that is enough info for ya. After reading it, I would have to agree with your last comment