WM_QUERYENDSESSION
読み:ダブリューエム-アンダースコア-クエリーエンドセッション
外語:WM_QUERYENDSESSION
Windowsにおけるウィンドウ メッセージの一つ。Windowsの終了時に送信される。
定義
UINT型の定数であり、WinUser.hで、以下のように定義される。
#define WM_QUERYENDSESSION 0x0011
仕様
引数
- HWND ‐ ウィンドウハンドル
- UINT ‐ 0x0011 (WM_QUERYENDSESSION)
- WPARAM ‐ (将来のために予約)
- LPARAM ‐ ログオフオプション (0の場合はシャットダウンまたは再起動中)
- 0x80000000 ‐ ENDSESSION_LOGOFF
- 0x40000000 ‐ ENDSESSION_CRITICAL
- 0x00000001 ‐ ENDSESSION_CLOSEAPP
返却値
- LRESULT
- TRUE (1) = 終了してよい (ユーザーの意向を尊重する)
- FALSE (0) = 終了できない
特徴
動作
ExitWindows()関数またはExitWindowsEx()関数は、実行中の全てのアプリケーションのメインウィンドウに対してWM_QUERYENDSESSIONメッセージを送信し、終了して良いかどうかを確認する。
使い方
アプリケーションプログラム側では、Windowsを終了させても良い場合はTRUEを、終了させてはいけない場合はFALSEを返却する。
最終的な結果は、WM_ENDSESSIONメッセージで通知される。
強制終了
ExitWindowsEx()関数のパラメーターにEWX_FORCEが設定されている場合は、WM_QUERYENDSESSIONやWM_ENDSESSIONメッセージは通知されず強制終了となる。
従って、WM_QUERYENDSESSIONイベントが来ることを期待して、ここで保存処理などを実施するとデータを失うことになるので、そのような処理にはしてはならない。
再検索