Release 940405
[wine.git] / include / message.h
blob905d182a02c5f80acc54a79449fb0cf9382ea4bd
1 /*
2 * Message queues definitions
4 * Copyright 1993 Alexandre Julliard
5 */
7 #ifndef MESSAGE_H
8 #define MESSAGE_H
10 #include "windows.h"
12 /* Message as stored in the queue (contains the extraInfo field) */
13 typedef struct tagQMSG
15 DWORD extraInfo; /* Only in 3.1 */
16 MSG msg;
17 } QMSG;
20 typedef struct tagMESSAGEQUEUE
22 WORD next;
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 */
33 WORD wParam;
34 WORD msg;
35 WORD hWnd;
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 */
44 } MESSAGEQUEUE;
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 );
57 #endif /* MESSAGE_H */