GetMessageW

呼び出し元スレッドのメッセージキューからメッセージを取得する。取得可能な投稿メッセージが得られるまで、着信送信メッセージを配送する。(GetMessageW)

GetMessageW lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax

lpMsg : [var] 型: LPMSG スレッドのメッセージキューからメッセージ情報を受け取る MSG 構造体へのポインタ。
hWnd : [intptr] 型: HWND メッセージを取得するウィンドウへのハンドル。ウィンドウは現在のスレッドに属している必要がある。
wMsgFilterMin : [int] 型: UINT 取得するメッセージ値の最小値。最初のキーボードメッセージを指定するには WM_KEYFIRST (0x0100)、最初のマウスメッセージを指定するには WM_MOUSEFIRST (0x0200) を使う。WM_INPUT メッセージのみを指定するには wMsgFilterMin と wMsgFilterMax の両方に WM_INPUT を指定する。wMsgFilterMin と wMsgFilterMax がともに 0 の場合、GetMessage は範囲フィルタリングを行わずすべてのメッセージを返す。
wMsgFilterMax : [int] 型: UINT 取得するメッセージ値の最大値。最後のキーボードメッセージを指定するには WM_KEYLAST、最後のマウスメッセージを指定するには WM_MOUSELAST を使う。

(プラグイン / モジュール : user32.dll)

解説

呼び出し元スレッドのメッセージキューからメッセージを取得する。取得可能な投稿メッセージが得られるまで、着信送信メッセージを配送する。(GetMessageW)

[戻り値]
型: BOOL 関数が WM_QUIT 以外のメッセージを取得した場合、戻り値は 0 以外。WM_QUIT を取得した場合は
0。エラーの場合は -1。たとえば hWnd が無効なウィンドウハンドル、または lpMsg
が無効なポインタの場合に失敗する。拡張エラー情報を得るには GetLastError を呼び出す。戻り値が 0 以外、0、-1
のいずれにもなりうるため、次のようなコードは避けること:
(以下省略)

[備考]
アプリケーションは通常、戻り値を使ってメインメッセージループを終了しプログラムを抜けるかどうかを判断する。GetMessage は
hWnd パラメータで指定されたウィンドウ(および IsChild
で判定されるその子)に関連付けられたメッセージのうち、wMsgFilterMin と wMsgFilterMax
の範囲内のものを取得する。これらのパラメータで使用できるのは下位ワードのみで、上位ワードはシステム予約である。wMsgFilterMin
と wMsgFilterMax に何を指定しても GetMessage は常に WM_QUIT
メッセージを取得する点に注意。この呼び出し中、システムは保留中のノンキューメッセージ(SendMessage、SendMessageCallback、SendMessageTimeout、SendNotifyMessage
により呼び出し元スレッド所有のウィンドウに送信されたメッセージ)を配送する。その後、指定フィルタに一致する最初のキューメッセージが取得される。システムは内部イベントも処理する場合がある。フィルタが指定されていない場合、メッセージは次の順で処理される:
(以下省略)

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs