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
95#define QF_UPDATEKEYSTATE 0x00000001
96#define QF_FMENUSTATUSBREAK 0x00000004
97#define QF_FMENUSTATUS 0x00000008
98#define QF_FF10STATUS 0x00000010
99#define QF_MOUSEMOVED 0x00000020
100#define QF_ACTIVATIONCHANGE 0x00000040
101#define QF_TABSWITCHING 0x00000080
102#define QF_KEYSTATERESET 0x00000100
103#define QF_INDESTROY 0x00000200
104#define QF_LOCKNOREMOVE 0x00000400
105#define QF_FOCUSNULLSINCEACTIVE 0x00000800
106#define QF_DIALOGACTIVE 0x00004000
107#define QF_EVENTDEACTIVATEREMOVED 0x00008000
108#define QF_TRACKMOUSELEAVE 0x00020000
109#define QF_TRACKMOUSEHOVER 0x00040000
110#define QF_TRACKMOUSEFIRING 0x00080000
111#define QF_CAPTURELOCKED 0x00100000
112#define QF_ACTIVEWNDTRACKING 0x00200000
123#define POSTEVENT_DAW 4
124#define POSTEVENT_SAW 5
125#define POSTEVENT_NWE 14
126#define POSTEVENT_NONE 0xFFFF
165 UINT MsgFilterMin,
UINT MsgFilterMax);
200 BOOL HasPackedLParam,
217#define IntReferenceMessageQueue(MsgQueue) \
218 InterlockedIncrement(&(MsgQueue)->References)
220#define IntDereferenceMessageQueue(MsgQueue) \
222 if(InterlockedDecrement(&(MsgQueue)->References) == 0) \
224 TRACE("Free message queue 0x%p\n", (MsgQueue)); \
225 ExFreePoolWithTag((MsgQueue), USERTAG_Q); \
229#define IS_BTN_MESSAGE(message,code) \
230 ((message) == WM_LBUTTON##code || \
231 (message) == WM_MBUTTON##code || \
232 (message) == WM_RBUTTON##code || \
233 (message) == WM_XBUTTON##code || \
234 (message) == WM_NCLBUTTON##code || \
235 (message) == WM_NCMBUTTON##code || \
236 (message) == WM_NCRBUTTON##code || \
237 (message) == WM_NCXBUTTON##code )
239#define WM_NCMOUSEFIRST WM_NCMOUSEMOVE
240#define WM_NCMOUSELAST (WM_NCMOUSEFIRST+(WM_MOUSELAST-WM_MOUSEFIRST))
242#define IS_MOUSE_MESSAGE(message) \
243 ((message >= WM_NCMOUSEFIRST && message <= WM_NCMOUSELAST) || \
244 (message >= WM_MOUSEFIRST && message <= WM_MOUSELAST))
246#define IS_KBD_MESSAGE(message) \
247 (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)
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)
VOID FASTCALL MsqPostMessage(PTHREADINFO, MSG *, BOOLEAN, DWORD, DWORD, LONG_PTR)
BOOL FASTCALL MsqIsClkLck(LPMSG Msg, BOOL Remove)
PUSER_MESSAGE FASTCALL MsqCreateMessage(LPMSG Msg)
unsigned __int3264 UINT_PTR
BYTE afKeyState[256 *2/8]
LIST_ENTRY HardwareMessagesListHead
struct _DESKTOP * Desktop
PCURICON_OBJECT CursorObject
BYTE afKeyRecentDown[256/8]
ULONG_PTR CompletionCallbackContext
SENDASYNCPROC CompletionCallback
PTHREADINFO ptiCallBackSender
PKEVENT pkCompletionEvent
TW_UINT32 TW_UINT16 TW_UINT16 MSG
void(CALLBACK * SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT)