X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=subsys%2Fwin32k%2Finclude%2Fmsgqueue.h;fp=subsys%2Fwin32k%2Finclude%2Fmsgqueue.h;h=b9a94593b173ccfc35a483e3b189f31f21fc11c1;hp=e2a3394691e3042033b067aebb1a34ed1e903b61;hb=7c0cf90e3b750f1f0dc83b2eec9e5c68a512c30f;hpb=ee8b63255465d8c28be3e7bd11628015708fc1ab diff --git a/subsys/win32k/include/msgqueue.h b/subsys/win32k/include/msgqueue.h index e2a3394..b9a9459 100644 --- a/subsys/win32k/include/msgqueue.h +++ b/subsys/win32k/include/msgqueue.h @@ -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))