Installing Zoo Tycoon problem (another one)
Duane Clark
dclark at akamail.com
Sun Mar 21 10:42:19 CST 2004
pvriens at xs4all.nl wrote:
>
> ...
> The caller of x11drv.MsgWaitForMultipleObjectsEx seems to be
> user32.PeekMessageA.
>
> The first thing that PeekMessageA/W does is check for graphic events:
>
> /* check for graphics events */
> if (USER_Driver.pMsgWaitForMultipleObjectsEx)
> USER_Driver.pMsgWaitForMultipleObjectsEx( 0, NULL, 0, 0, 0 );
>
> But does this realy retrieve all messages as the parameter 3 and 4 would
> suggest (wMsgFilterMin and wMsgFilterMax being 0).
I'm not sure where you got wMsgFilterMin and wMsgFilterMax from.
Parameters 3 and 4 are milliseconds and wakemask:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/msgwaitformultipleobjectsex.asp
The call to MsgWaitForMultipleObjectsEx with all zeroes is not intended
to return messages. Instead, it is basically a way to tell the Wine
server to check for and get pending events. How the event buffering
works is a bit over my head, but I think it is something like this.
The call to MsgWaitForMultipleObjectsEx checks for pending events (such
as X events). Since no filters were used, all events are checked and
stored in Wine's server. The return from the call to
MsgWaitForMultipleObjectsEx simply indicates whether there are any
messages now stored in the Wine server. If there are, then the function
"Peeks" at them to get one of them, and immediately handles certain
message types (such as WM_PAINT).
More information about the wine-users
mailing list