branch update for HEAD-2003091401
[reactos.git] / subsys / win32k / include / msgqueue.h
index e2a3394..b9a9459 100644 (file)
@@ -52,7 +52,7 @@ typedef struct _USER_MESSAGE_QUEUE
   KEVENT NewMessages;  
   /* FIXME: Unknown. */
   ULONG QueueStatus;
-  /* Current window with focus for this queue. */
+  /* Current window with focus (ie. receives keyboard input) for this queue. */
   HWND FocusWindow;
   /* True if a window needs painting. */
   BOOLEAN PaintPosted;
@@ -62,22 +62,31 @@ typedef struct _USER_MESSAGE_QUEUE
   HWND ActiveWindow;
   /* Current capture window for this queue. */
   HWND CaptureWindow;
+
+  /* queue state tracking */
+  WORD WakeBits;
+  WORD WakeMask;
+  WORD ChangedBits;
+  WORD ChangedMask;
+
 } USER_MESSAGE_QUEUE, *PUSER_MESSAGE_QUEUE;
 
-VOID
+VOID FASTCALL
 MsqSendMessage(PUSER_MESSAGE_QUEUE MessageQueue,
               PUSER_SENT_MESSAGE Message);
-VOID
+VOID FASTCALL
 MsqInitializeMessage(PUSER_MESSAGE Message,
                     LPMSG Msg);
-PUSER_MESSAGE
+PUSER_MESSAGE FASTCALL
 MsqCreateMessage(LPMSG Msg);
-VOID
+VOID FASTCALL
 MsqDestroyMessage(PUSER_MESSAGE Message);
-VOID
+VOID FASTCALL
 MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue,
               PUSER_MESSAGE Message);
-BOOLEAN
+VOID FASTCALL
+MsqPostQuitMessage(PUSER_MESSAGE_QUEUE MessageQueue, ULONG ExitCode);
+BOOLEAN STDCALL
 MsqFindMessage(IN PUSER_MESSAGE_QUEUE MessageQueue,
               IN BOOLEAN Hardware,
               IN BOOLEAN Remove,
@@ -85,41 +94,45 @@ MsqFindMessage(IN PUSER_MESSAGE_QUEUE MessageQueue,
               IN UINT MsgFilterLow,
               IN UINT MsgFilterHigh,
               OUT PUSER_MESSAGE* Message);
-VOID
+VOID FASTCALL
 MsqInitializeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
-VOID
+VOID FASTCALL
 MsqFreeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
-PUSER_MESSAGE_QUEUE
+PUSER_MESSAGE_QUEUE FASTCALL
 MsqCreateMessageQueue(VOID);
-VOID
+VOID FASTCALL
 MsqDestroyMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
-PUSER_MESSAGE_QUEUE
+PUSER_MESSAGE_QUEUE FASTCALL
 MsqGetHardwareMessageQueue(VOID);
-NTSTATUS
+NTSTATUS FASTCALL
 MsqWaitForNewMessage(PUSER_MESSAGE_QUEUE MessageQueue);
-NTSTATUS
+NTSTATUS FASTCALL
 MsqInitializeImpl(VOID);
-BOOLEAN
+BOOLEAN FASTCALL
 MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue);
-NTSTATUS
+NTSTATUS FASTCALL
 MsqWaitForNewMessages(PUSER_MESSAGE_QUEUE MessageQueue);
-VOID
+VOID FASTCALL
 MsqSendNotifyMessage(PUSER_MESSAGE_QUEUE MessageQueue,
                     PUSER_SENT_MESSAGE_NOTIFY NotifyMessage);
-VOID
+VOID FASTCALL
 MsqIncPaintCountQueue(PUSER_MESSAGE_QUEUE Queue);
-VOID
+VOID FASTCALL
 MsqDecPaintCountQueue(PUSER_MESSAGE_QUEUE Queue);
 LRESULT STDCALL
-W32kSendMessage(HWND hWnd,
+IntSendMessage(HWND hWnd,
                UINT Msg,
                WPARAM wParam,
                LPARAM lParam,
                BOOL KernelMessage);
-VOID
+VOID STDCALL
 MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
-VOID
-MsqInsertSystemMessage(MSG* Msg);
+VOID FASTCALL
+MsqInsertSystemMessage(MSG* Msg, BOOL RemMouseMoveMsg);
+
+inline BOOL MsqIsSignaled( PUSER_MESSAGE_QUEUE queue );
+inline VOID MsqSetQueueBits( PUSER_MESSAGE_QUEUE queue, WORD bits );
+inline VOID MsqClearQueueBits( PUSER_MESSAGE_QUEUE queue, WORD bits );
 
 #define MAKE_LONG(x, y) ((((y) & 0xFFFF) << 16) | ((x) & 0xFFFF))