GetQueueStatus 関数 (winuser.h)
呼び出し元スレッドのメッセージ キューで見つかったメッセージの種類を取得します。
構文
DWORD GetQueueStatus(
[in] UINT flags
);
パラメーター
[in] flags
型: UINT
チェックするメッセージの種類。 このパラメーターには、次の 1 つ以上の値を指定できます。
値 | 意味 |
---|---|
QS_KEY 0x0001 |
WM_KEYUP、WM_KEYDOWN、WM_SYSKEYUP、またはWM_SYSKEYDOWNメッセージがキュー内にあります。 |
QS_MOUSEMOVE 0x0002 |
WM_MOUSEMOVE メッセージがキューに入ります。 |
QS_MOUSEBUTTON 0x0004 |
マウス ボタン メッセージ (WM_LBUTTONUP、 WM_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_LBUTTONUP、WM_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_TIMER、 WM_PAINT、 WM_HOTKEY、または投稿されたメッセージがキュー内にあります。 |
QS_ALLINPUT (QS_INPUT |QS_POSTMESSAGE |QS_TIMER |QS_PAINT |QS_HOTKEY |QS_SENDMESSAGE) |
すべてのメッセージがキュー内にあります。 |
戻り値
型: DWORD
戻り値の上位ワードは、キュー内の現在のメッセージの種類を示します。 低順序の単語は、GetQueueStatus、GetMessage、または PeekMessage 関数の最後の呼び出し以降にキューに追加されたメッセージの種類を示します。
注釈
戻り値にQS_ フラグが存在しても、 GetMessage 関数または PeekMessage 関数の後続の呼び出しでメッセージが返される保証はありません。 GetMessage と PeekMessage は、メッセージが内部的に処理される可能性のある内部フィルター処理を実行します。 このため、 GetQueueStatus からの戻り値は、 GetMessage と PeekMessage のどちらを呼び出すかに関するヒントのみを考慮する必要があります。
QS_ALLPOSTMESSAGEフラグとQS_POSTMESSAGE フラグは、クリア時に異なります。 メッセージ をフィルター処理するかどうかに関係なく、 GetMessage または PeekMessage を呼び出すと、QS_POSTMESSAGEはクリアされます。 メッセージをフィルター処理せずに GetMessage または PeekMessage を呼び出すと、QS_ALLPOSTMESSAGEはクリアされます (wMsgFilterMin と wMsgFilterMax は 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で導入) |
関連項目
概念
参照