Сообщения и очереди сообщений
Сообщения и очереди сообщений
GetQueueStatus
Функция GetQueueStatus возвращает флаги, которые показывают тип сообщений, обнаруженных в очереди сообщений вызывающего потока.
DWORD GetQueueStatus (
UINT flags // флаги состояния очереди
);
Параметры
flags - определяет флаги состояния очереди, указывая типы сообщений для проверки. Может быть комбинацией следующих значений:
Значение
Пояснение
QS_ALLEVENTS
Сообщение ввода, WM_TIMER, WM_PAINT, WM_HOTKEY или помещенное в очередь сообщение.
QS_ALLINPUT
Любое сообщение ввода.
QS_HOTKEY
Сообщение WM_HOTKEY .
QS_INPUT
Сообщение ввода.
QS_KEY
Сообщение WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP или WM_SYSKEYDOWN в очереди.
QS_MOUSE
Сообщение WM_MOUSEMOVE или сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.).
QS_MOUSEBUTTON
Сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.).
QS_MOUSEMOVE
Сообщение WM_MOUSEMOVE.
QS_PAINT
Сообщение WM_PAINT .
QS_OSTMESSAGE
Помещенное сообщение, отличное от перечисленных выше, находится в очереди.
QS_ENDMESSAGE
Сообщение, отправленное другим потоком или приложением, находится в очереди.
QS_TIMER
Сообщение WM_TIMER .
Возвращаемые значения
Старшее слово показывает типы сообщений, находящихся в очереди. Младшее слово показывает типы сообщений, которые были добавлены в очередь и все еще там находятся с момента последнего вызова функции GetQueueStatus : GetMessage или PeekMessage .
Комментарии
Присутствие флага QS_ в возвращаемом значении не гарантирует, что последующий вызов функции PeekMessage или GetMessage вернет сообщение. PeekMessage или GetMessage выполняют определенную внутреннюю фильтрацию, которая может привести ко внутренней обработке сообщения. По этой причине, возвращаемое функцией GetQueueStatus значение должно быть рассматриваемо только как намек на то, должна ли быть вызвана функция GetMessage или PeekMessage .
См. также
GetInputState, GetMessage, PeekMessage .