GetQueueStatus function (winuser.h)
Retrieves the type of messages found in the calling thread's message queue.
Syntax
DWORD GetQueueStatus(
[in] UINT flags
);
Parameters
[in] flags
Type: UINT
The types of messages for which to check. This parameter can be one or more of the following values.
Value | Meaning |
---|---|
QS_KEY 0x0001 |
A WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP, or WM_SYSKEYDOWN message is in the queue. |
QS_MOUSEMOVE 0x0002 |
A WM_MOUSEMOVE message is in the queue. |
QS_MOUSEBUTTON 0x0004 |
A mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). |
QS_POSTMESSAGE 0x0008 |
A posted message (other than those listed here) is in the queue. For more information, see PostMessage. This value is cleared when you call GetMessage or PeekMessage, whether or not you are filtering messages. |
QS_TIMER 0x0010 |
A WM_TIMER message is in the queue. |
QS_PAINT 0x0020 |
A WM_PAINT message is in the queue. |
QS_SENDMESSAGE 0x0040 |
A message sent by another thread or application is in the queue. For more information, see SendMessage. |
QS_HOTKEY 0x0080 |
A WM_HOTKEY message is in the queue. |
QS_ALLPOSTMESSAGE 0x0100 |
A posted message (other than those listed here) is in the queue. For more information, see PostMessage. This value is cleared when you call GetMessage or PeekMessage without filtering messages. |
QS_RAWINPUT 0x0400 |
Windows XP and newer: A raw input message is in the queue. For more information, see Raw Input. |
QS_TOUCH 0x0800 |
Windows 8 and newer: A touch input message is in the queue. For more information, see Touch Input. |
QS_POINTER 0x1000 |
Windows 8 and newer: A pointer input message is in the queue. For more information, see Pointer Input. |
QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) |
A WM_MOUSEMOVE message or mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). |
QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT | QS_TOUCH | QS_POINTER) |
An input message is in the queue. |
QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) |
An input, WM_TIMER, WM_PAINT, WM_HOTKEY, or posted message is in the queue. |
QS_ALLINPUT (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE) |
Any message is in the queue. |
Return value
Type: DWORD
The high-order word of the return value indicates the types of messages currently in the queue. The low-order word indicates the types of messages that have been added to the queue and that are still in the queue since the last call to the GetQueueStatus, GetMessage, or PeekMessage function.
Remarks
The presence of a QS_ flag in the return value does not guarantee that a subsequent call to the GetMessage or PeekMessage function will return a message. GetMessage and PeekMessage perform some internal filtering that may cause the message to be processed internally. For this reason, the return value from GetQueueStatus should be considered only a hint as to whether GetMessage or PeekMessage should be called.
The QS_ALLPOSTMESSAGE and QS_POSTMESSAGE flags differ in when they are cleared. QS_POSTMESSAGE is cleared when you call GetMessage or PeekMessage, whether or not you are filtering messages. QS_ALLPOSTMESSAGE is cleared when you call GetMessage or PeekMessage without filtering messages (wMsgFilterMin and wMsgFilterMax are 0). This can be useful when you call PeekMessage multiple times to get messages in different ranges.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Target Platform | Windows |
Header | winuser.h (include Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API set | ext-ms-win-ntuser-message-l1-1-0 (introduced in Windows 8) |
See also
Conceptual
Reference