指定したウィンドウを作成したスレッドのメッセージキューにメッセージを投稿(ポスト)し、スレッドがメッセージを処理するのを待たずに戻る。(Unicode)
PostMessageW hWnd, Msg, wParam, lParam
hWnd : [intptr] 型: HWND メッセージを受け取るウィンドウプロシージャのウィンドウへのハンドル。次の値は特別な意味を持つ。 Msg : [int] 型: UINT 投稿するメッセージ。システム定義メッセージの一覧は System-Defined Messages を参照。 wParam : [intptr] 型: WPARAM メッセージ固有の追加情報。 lParam : [intptr] 型: LPARAM メッセージ固有の追加情報。
(プラグイン / モジュール : user32.dll)
指定したウィンドウを作成したスレッドのメッセージキューにメッセージを投稿(ポスト)し、スレッドがメッセージを処理するのを待たずに戻る。(Unicode) [戻り値] 型: BOOL 関数が成功した場合、戻り値は 0 以外。失敗した場合は 0。拡張エラー情報を得るには GetLastError を呼び出す。 [備考] UIPI によりメッセージがブロックされた場合、GetLastError で取得される最終エラーは 5 (access denied) に設定される。メッセージキュー内のメッセージは GetMessage または PeekMessage で取得される。HWND_BROADCAST を使った通信を行うアプリケーションは、アプリケーション間通信用の一意なメッセージを得るために RegisterWindowMessage を使うべきである。システムはシステムメッセージ(0~WM_USER-1 の範囲)についてのみマーシャリングを行う。他のメッセージ(WM_USER 以上)を別プロセスへ送るにはカスタムマーシャリングが必要。WM_USER 未満のメッセージを非同期メッセージ関数(PostMessage、SendNotifyMessage、SendMessageCallback)で送る場合、メッセージパラメータにポインタを含めてはならない。さもなければ操作は失敗する。これらの関数は受信スレッドがメッセージを処理する前に戻り、送信側は使用される前にメモリを解放してしまう。WM_QUIT を PostMessage で投稿してはならない。代わりに PostQuitMessage を使うこと。アクセシビリティアプリケーションは PostMessage でシェルに WM_APPCOMMAND メッセージを投稿しアプリケーションを起動できる。これは他のタイプのアプリケーションで動作する保証はない。メッセージキューあたりの投稿メッセージ数は 10,000 に制限される。この上限は十分大きいはずである。上限を超える場合、そのアプリケーションはシステムリソースの消費を避けるよう再設計すべきである。この上限を調整するには次のレジストリキーを編集する。HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Windows USERPostMessageLimit 失敗時は GetLastError を呼ぶ。上限に達した場合、GetLastError は ERROR_NOT_ENOUGH_QUOTA を返す。許容可能な最小値は 4000。
| プラグイン / モジュール | user32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_user32_gen2.hs |