Сообщения и очереди сообщений

Сообщения и очереди сообщений

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 .