Release 940815
[wine] / include / message.h
1 /*
2  * Message queues definitions
3  *
4  * Copyright 1993 Alexandre Julliard
5  */
6
7 #ifndef MESSAGE_H
8 #define MESSAGE_H
9
10 #include "windows.h"
11
12   /* Message as stored in the queue (contains the extraInfo field) */
13 typedef struct tagQMSG
14 {
15     DWORD   extraInfo;  /* Only in 3.1 */
16     MSG     msg;
17 } QMSG;
18
19
20 typedef struct tagMESSAGEQUEUE
21 {
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;
45
46
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 );
58
59 #endif  /* MESSAGE_H */