GetQueueStatus 関数 (winuser.h)

呼び出し元スレッドのメッセージ キューで見つかったメッセージの種類を取得します。

構文

DWORD GetQueueStatus(
  [in] UINT flags
);

パラメーター

[in] flags

型: UINT

チェックするメッセージの種類。 このパラメーターには、次の 1 つ以上の値を指定できます。

意味
QS_KEY
0x0001
WM_KEYUPWM_KEYDOWNWM_SYSKEYUP、またはWM_SYSKEYDOWNメッセージがキュー内にあります。
QS_MOUSEMOVE
0x0002
WM_MOUSEMOVE メッセージがキューに入ります。
QS_MOUSEBUTTON
0x0004
マウス ボタン メッセージ (WM_LBUTTONUPWM_RBUTTONDOWNなど)。
QS_POSTMESSAGE
0x0008
投稿されたメッセージ (ここに記載されているもの以外) がキューに入っています。 詳細については、「 PostMessage」を参照してください。
この値は、メッセージをフィルター処理しているかどうかに関係なく、 GetMessage または PeekMessage を呼び出すとクリアされます。
QS_TIMER
0x0010
WM_TIMER メッセージがキューに入ります。
QS_PAINT
0x0020
WM_PAINT メッセージがキューに入ります。
QS_SENDMESSAGE
0x0040
別のスレッドまたはアプリケーションから送信されたメッセージがキュー内にあります。 詳細については、「 SendMessage」を参照してください。
QS_HOTKEY
0x0080
WM_HOTKEY メッセージがキューに入ります。
QS_ALLPOSTMESSAGE
0x0100
投稿されたメッセージ (ここに記載されているもの以外) がキューに入っています。 詳細については、「 PostMessage」を参照してください。
この値は、メッセージをフィルター処理せずに GetMessage または PeekMessage を呼び出すとクリアされます。
QS_RAWINPUT
0x0400
Windows XP 以降: 未加工の入力メッセージがキュー内にあります。 詳細については、「 生入力」を参照してください。
QS_TOUCH
0x0800
Windows 8以降: タッチ入力メッセージがキュー内にあります。 詳細については、「 タッチ入力」を参照してください。
QS_POINTER
0x1000
Windows 8以降: ポインター入力メッセージがキュー内にあります。 詳細については、「 ポインター入力」を参照してください。
QS_MOUSE
(QS_MOUSEMOVE |QS_MOUSEBUTTON)
WM_MOUSEMOVE メッセージまたはマウス ボタン メッセージ (WM_LBUTTONUPWM_RBUTTONDOWNなど)。
QS_INPUT
(QS_MOUSE |QS_KEY |QS_RAWINPUT |QS_TOUCH |QS_POINTER)
入力メッセージがキューに入ります。
QS_ALLEVENTS
(QS_INPUT |QS_POSTMESSAGE |QS_TIMER |QS_PAINT |QS_HOTKEY)
入力、 WM_TIMERWM_PAINTWM_HOTKEY、または投稿されたメッセージがキュー内にあります。
QS_ALLINPUT
(QS_INPUT |QS_POSTMESSAGE |QS_TIMER |QS_PAINT |QS_HOTKEY |QS_SENDMESSAGE)
すべてのメッセージがキュー内にあります。

戻り値

型: DWORD

戻り値の上位ワードは、キュー内の現在のメッセージの種類を示します。 低順序の単語は、GetQueueStatus、GetMessage、または PeekMessage 関数の最後の呼び出し以降にキューに追加されたメッセージの種類を示します。

注釈

戻り値にQS_ フラグが存在しても、 GetMessage 関数または PeekMessage 関数の後続の呼び出しでメッセージが返される保証はありません。 GetMessagePeekMessage は、メッセージが内部的に処理される可能性のある内部フィルター処理を実行します。 このため、 GetQueueStatus からの戻り値は、 GetMessagePeekMessage のどちらを呼び出すかに関するヒントのみを考慮する必要があります。

QS_ALLPOSTMESSAGEフラグとQS_POSTMESSAGE フラグは、クリア時に異なります。 メッセージ をフィルター処理するかどうかに関係なく、 GetMessage または PeekMessage を呼び出すと、QS_POSTMESSAGEはクリアされます。 メッセージをフィルター処理せずに GetMessage または PeekMessage を呼び出すと、QS_ALLPOSTMESSAGEはクリアされます (wMsgFilterMinwMsgFilterMax は 0)。 これは、 PeekMessage を複数回呼び出して、さまざまな範囲のメッセージを取得する場合に便利です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-message-l1-1-0 (Windows 8で導入)

関連項目

概念

GetInputState

GetMessage

メッセージとメッセージ キュー

PeekMessage

参照