2 * Message queues definitions
4 * Copyright 1993 Alexandre Julliard
12 /* Message as stored in the queue (contains the extraInfo field) */
13 typedef struct tagQMSG
15 DWORD extraInfo; /* Only in 3.1 */
20 typedef struct tagMESSAGEQUEUE
23 WORD hTask; /* hTask owning the queue */
24 WORD msgSize; /* Size of messages in the queue */
25 WORD msgCount; /* Number of waiting messages */
26 WORD nextMessage; /* Next message to be retrieved */
27 WORD nextFreeMessage; /* Next available slot in the queue */
28 WORD queueSize; /* Size of the queue */
29 DWORD GetMessageTimeVal; /* Value returned by GetMessageTime */
30 DWORD GetMessagePosVal; /* Value returned by GetMessagePos */
31 DWORD GetMessageExtraInfoVal; /* Value returned by GetMessageExtraInfo */
32 DWORD lParam; /* Next four values set by SendMessage */
36 WORD wPostQMsg; /* PostQuitMessage flag */
37 WORD wExitCode; /* PostQuitMessage exit code */
38 WORD InSendMessageHandle; /* Handle of task that sent a message */
39 WORD wPaintCount; /* Number of WM_PAINT needed */
40 WORD wTimerCount; /* Number of timers for this application */
41 WORD tempStatus; /* State reset by GetQueueStatus */
42 WORD status; /* Queue state */
43 QMSG messages[1]; /* Queue messages */
47 extern void MSG_IncPaintCount( HANDLE hQueue );
48 extern void MSG_DecPaintCount( HANDLE hQueue );
49 extern void MSG_IncTimerCount( HANDLE hQueue );
50 extern void MSG_DecTimerCount( HANDLE hQueue );
51 extern void MSG_Synchronize();
52 extern BOOL MSG_CreateSysMsgQueue( int size );
53 extern void hardware_event( WORD message, WORD wParam, LONG lParam,
54 int xPos, int yPos, DWORD time, DWORD extraInfo );
55 extern BOOL MSG_GetHardwareMessage( LPMSG msg );
56 extern BOOL MSG_InternalGetMessage( LPMSG msg, HWND hwnd, HWND hwndOwner,
57 short code, WORD flags, BOOL sendIdle );
59 #endif /* MESSAGE_H */