6#define MSQ_INJECTMODULE 2
38#define SMF_RECEIVERDIED 0x00000002
39#define SMF_SENDERDIED 0x00000004
40#define SMF_RECEIVERFREE 0x00000008
41#define SMF_RECEIVEDMESSAGE 0x00000010
42#define SMF_RECEIVERBUSY 0x00004000
98#define QF_UPDATEKEYSTATE 0x00000001
99#define QF_FMENUSTATUSBREAK 0x00000004
100#define QF_FMENUSTATUS 0x00000008
101#define QF_FF10STATUS 0x00000010
102#define QF_MOUSEMOVED 0x00000020
103#define QF_ACTIVATIONCHANGE 0x00000040
104#define QF_TABSWITCHING 0x00000080
105#define QF_KEYSTATERESET 0x00000100
106#define QF_INDESTROY 0x00000200
107#define QF_LOCKNOREMOVE 0x00000400
108#define QF_FOCUSNULLSINCEACTIVE 0x00000800
109#define QF_DIALOGACTIVE 0x00004000
110#define QF_EVENTDEACTIVATEREMOVED 0x00008000
111#define QF_TRACKMOUSELEAVE 0x00020000
112#define QF_TRACKMOUSEHOVER 0x00040000
113#define QF_TRACKMOUSEFIRING 0x00080000
114#define QF_CAPTURELOCKED 0x00100000
115#define QF_ACTIVEWNDTRACKING 0x00200000
126#define POSTEVENT_DAW 4
127#define POSTEVENT_SAW 5
128#define POSTEVENT_NWE 14
129#define POSTEVENT_NONE 0xFFFF
168 UINT MsgFilterMin,
UINT MsgFilterMax);
203 BOOL HasPackedLParam,
220#define IntReferenceMessageQueue(MsgQueue) \
221 InterlockedIncrement(&(MsgQueue)->References)
223#define IntDereferenceMessageQueue(MsgQueue) \
225 if(InterlockedDecrement(&(MsgQueue)->References) == 0) \
227 TRACE("Free message queue 0x%p\n", (MsgQueue)); \
228 ExFreePoolWithTag((MsgQueue), USERTAG_Q); \
232#define IS_BTN_MESSAGE(message,code) \
233 ((message) == WM_LBUTTON##code || \
234 (message) == WM_MBUTTON##code || \
235 (message) == WM_RBUTTON##code || \
236 (message) == WM_XBUTTON##code || \
237 (message) == WM_NCLBUTTON##code || \
238 (message) == WM_NCMBUTTON##code || \
239 (message) == WM_NCRBUTTON##code || \
240 (message) == WM_NCXBUTTON##code )
242#define WM_NCMOUSEFIRST WM_NCMOUSEMOVE
243#define WM_NCMOUSELAST (WM_NCMOUSEFIRST+(WM_MOUSELAST-WM_MOUSEFIRST))
245#define IS_MOUSE_MESSAGE(message) \
246 ((message >= WM_NCMOUSEFIRST && message <= WM_NCMOUSELAST) || \
247 (message >= WM_MOUSEFIRST && message <= WM_MOUSELAST))
249#define IS_KBD_MESSAGE(message) \
250 (message >= WM_KEYFIRST && message <= WM_KEYLAST)
const TCHAR * CompletionCallback(unsigned __int64 &rnIndex, const BOOL *pblnForward, const TCHAR *pszContext, const TCHAR *pszBegin)
static const WCHAR Message[]
NTSTATUS NTAPI MsqInitializeImpl(VOID)
WPARAM FASTCALL MsqGetDownKeyState(PUSER_MESSAGE_QUEUE)
VOID FASTCALL MsqPostQuitMessage(PTHREADINFO pti, ULONG ExitCode)
VOID FASTCALL MsqCleanupThreadMsgs(PTHREADINFO)
VOID FASTCALL IdlePing(VOID)
VOID FASTCALL MsqDestroyMessage(PUSER_MESSAGE Message)
BOOL FASTCALL IntTranslateKbdMessage(LPMSG lpMsg, UINT flags)
BOOLEAN FASTCALL co_MsqDispatchOneSentMessage(_In_ PTHREADINFO pti)
VOID FASTCALL MsqReleaseModifierKeys(PUSER_MESSAGE_QUEUE MessageQueue)
LRESULT FASTCALL co_IntSendMessageWithCallBack(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC CompletionCallback, ULONG_PTR CompletionCallbackContext, ULONG_PTR *uResult)
BOOL APIENTRY IntInitMessagePumpHook(VOID)
HWND FASTCALL MsqSetStateWindow(PTHREADINFO pti, ULONG Type, HWND hWnd)
struct _USER_MESSAGE_QUEUE USER_MESSAGE_QUEUE
BOOL APIENTRY co_MsqPeekHardwareMessage(IN PTHREADINFO pti, IN BOOL Remove, IN PWND Window, IN UINT MsgFilterLow, IN UINT MsgFilterHigh, IN UINT QSflags, OUT MSG *pMsg)
int UserShowCursor(BOOL bShow)
BOOL FASTCALL MsqIsDblClk(LPMSG Msg, BOOL Remove)
LRESULT FASTCALL IntDispatchMessage(MSG *Msg)
DWORD APIENTRY IntGetQueueStatus(DWORD)
LRESULT FASTCALL co_IntSendMessageNoWait(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
VOID FASTCALL co_MsqInsertMouseMessage(MSG *Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
PCURICON_OBJECT FASTCALL UserSetCursor(PCURICON_OBJECT NewCursor, BOOL ForceChange)
BOOL FASTCALL UserSendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
struct _USER_SENT_MESSAGE USER_SENT_MESSAGE
VOID CALLBACK HungAppSysTimerProc(HWND, UINT, UINT_PTR, DWORD)
VOID FASTCALL MsqDestroyMessageQueue(_In_ PTHREADINFO pti)
NTSTATUS FASTCALL co_MsqSendMessage(PTHREADINFO ptirec, HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT uTimeout, BOOL Block, INT HookMessage, ULONG_PTR *uResult)
VOID FASTCALL ClearMsgBitsMask(PTHREADINFO, UINT)
LRESULT FASTCALL co_IntPostOrSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
VOID FASTCALL FreeUserMessage(PUSER_SENT_MESSAGE)
BOOL FASTCALL IntMsqClearWakeMask(VOID)
VOID FASTCALL MsqIncPaintCountQueue(PTHREADINFO)
VOID FASTCALL MsqDecPaintCountQueue(PTHREADINFO)
struct _USER_MESSAGE * PUSER_MESSAGE
BOOL FASTCALL IntCallMsgFilter(LPMSG, INT)
BOOL FASTCALL co_IntWaitMessage(PWND Window, UINT MsgFilterMin, UINT MsgFilterMax)
struct _USER_SENT_MESSAGE * PUSER_SENT_MESSAGE
@ WM_ASYNC_SETACTIVEWINDOW
struct _USER_MESSAGE_QUEUE * PUSER_MESSAGE_QUEUE
LRESULT FASTCALL co_IntSendMessageTimeout(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT uFlags, UINT uTimeout, ULONG_PTR *uResult)
VOID APIENTRY MsqRemoveWindowMessagesFromQueue(PWND pWindow)
BOOL APIENTRY co_IntGetPeekMessage(PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax, UINT RemoveMsg, BOOL bGMSG)
LPARAM FASTCALL MsqSetMessageExtraInfo(LPARAM lParam)
BOOL FASTCALL co_MsqSendMessageAsync(PTHREADINFO ptiReceiver, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC CompletionCallback, ULONG_PTR CompletionCallbackContext, BOOL HasPackedLParam, INT HookMessage)
BOOL FASTCALL MsqIsHung(PTHREADINFO pti, DWORD TimeOut)
VOID FASTCALL IdlePong(VOID)
BOOL FASTCALL MsqPostMessage(PTHREADINFO, MSG *, BOOLEAN, DWORD, DWORD, LONG_PTR)
VOID FASTCALL IntCoalesceMouseMove(PTHREADINFO)
BOOL APIENTRY IntUninitMessagePumpHook(VOID)
HANDLE FASTCALL IntMsqSetWakeMask(DWORD WakeMask)
BOOL FASTCALL UserPostThreadMessage(PTHREADINFO pti, UINT Msg, WPARAM wParam, LPARAM lParam)
BOOL FASTCALL IsThreadSuspended(PTHREADINFO)
NTSTATUS FASTCALL co_MsqWaitForNewMessages(PTHREADINFO pti, PWND WndFilter, UINT MsgFilterMin, UINT MsgFilterMax)
BOOLEAN FASTCALL MsqInitializeMessageQueue(PTHREADINFO, PUSER_MESSAGE_QUEUE)
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
BOOLEAN APIENTRY MsqPeekMessage(IN PTHREADINFO pti, IN BOOLEAN Remove, IN PWND Window, IN UINT MsgFilterLow, IN UINT MsgFilterHigh, IN UINT QSflags, OUT LONG_PTR *ExtraInfo, OUT DWORD *dwQEvent, OUT PMSG Message)
VOID FASTCALL MsqWakeQueue(PTHREADINFO, DWORD, BOOL)
BOOL FASTCALL co_MsqReplyMessage(LRESULT)
struct _USER_MESSAGE USER_MESSAGE
PUSER_MESSAGE_QUEUE FASTCALL MsqCreateMessageQueue(PTHREADINFO)
LPARAM FASTCALL MsqGetMessageExtraInfo(VOID)
PUSER_SENT_MESSAGE FASTCALL AllocateUserMessage(BOOL)
UINT lParamMemorySize(UINT Msg, WPARAM wParam, LPARAM lParam)
BOOL FASTCALL MsqIsClkLck(LPMSG Msg, BOOL Remove)
PUSER_MESSAGE FASTCALL MsqCreateMessage(LPMSG Msg)
unsigned __int3264 UINT_PTR
void(CALLBACK * SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT)
BYTE afKeyState[256 *2/8]
LIST_ENTRY HardwareMessagesListHead
struct _DESKTOP * Desktop
PCURICON_OBJECT CursorObject
LIST_ENTRY RawInputListHead
BYTE afKeyRecentDown[256/8]
ULONG_PTR CompletionCallbackContext
SENDASYNCPROC CompletionCallback
PTHREADINFO ptiCallBackSender
PKEVENT pkCompletionEvent
TW_UINT32 TW_UINT16 TW_UINT16 MSG