WM _ queryendsession メッセージ

WM _ queryendsession メッセージは、ユーザーがセッションを終了することを選択したとき、またはアプリケーションがシステムシャットダウン関数のいずれかを呼び出したときに送信されます。 いずれかのアプリケーションが0を返した場合、セッションは終了しません。 システムは、1つのアプリケーションが0を返すとすぐに WM _ queryendsession メッセージの送信を停止します。

このメッセージを処理すると、システムは、 wParam パラメーターが設定された wm _ Endsessionメッセージを、 wm _ queryendsession メッセージの結果に送信します。

ウィンドウは、 WindowProc 関数を通じてこのメッセージを受信します。

LRESULT CALLBACK WindowProc( 
  HWND hwnd,      // handle to window 
  UINT uMsg,      // message identifier 
  WPARAM wParam,  // not used 
  LPARAM lParam   // logoff option
);

パラメーター

hwnd

ウィンドウへのハンドル。

uMsg

WM _ queryendsession 識別子。

wParam

このパラメーターは将来使用するために予約されています。

lParam

このパラメーターには、次の値を1つ以上指定できます。 このパラメーターが0の場合は、システムがシャットダウンまたは再起動しています (どのイベントが発生しているかを判断することはできません)。

意味
Endsession _CLOSEAPP
0x00000001
アプリケーションは、置き換える必要があるファイルを使用しているか、システムがサービスを提供しているか、システムリソースが使い果たされています。 詳細については、「 アプリケーションのガイドライン」を参照してください。
Endsession _重要な
0x40000000
アプリケーションが強制的にシャットダウンされます。
Endsession _ログオフ
0x80000000
ユーザーはログオフしています。 詳細については、「 ログオフ」を参照してください。

このパラメーターはビットマスクであることに注意してください。 この値をテストするには、ビットごとの演算を使用します。等しいかどうかをテストしません。

戻り値

アプリケーションはユーザーの意図を尊重し、 TRUE を返します。 既定では、 DefWindowProc 関数はこのメッセージに対して TRUE を返します。

シャットダウンすると、書き込み中のシステムまたはメディアが破損した場合、アプリケーションは FALSE を返すことができます。 ただし、ユーザーの操作を尊重することをお勧めします。

解説

アプリケーションがこのメッセージに対して TRUE を返すと、他のアプリケーションが wm _ queryendsession メッセージにどのように応答するかに関係なく、 wm _ endsessionメッセージを受信します。 各アプリケーションは、このメッセージを受信すると直ちに TRUE または FALSE を返し、 WM _ endsession メッセージを受信するまでクリーンアップ操作を延期する必要があります。

アプリケーションでは、シャットダウン時にユーザーに情報の入力を求めるユーザーインターフェイスを表示できますが、推奨されません。 5秒後に、システムによって、シャットダウンを妨げているアプリケーションに関する情報が表示され、ユーザーはそれらを終了できます。 たとえば、Windows XP ではダイアログボックスが表示され、Windows Vista では、シャットダウンをブロックしているアプリケーションに関する追加情報を含む全画面が表示されます。 アプリケーションでシステムシャットダウンをブロックまたは延期する必要がある場合は、 Shutdownblock理由 create 関数を使用します。 詳細については、「 Windows Vista のシャットダウンの変更」を参照してください。

コンソールアプリケーションでは、 SetConsoleCtrlHandler 関数を使用してシャットダウン通知を受け取ることができます。

サービスアプリケーションは、 RegisterServiceCtrlHandlerEx 関数を使用して、ハンドラールーチンでシャットダウン通知を受け取ることができます。

例については、「 ログオフ」を参照してください。

必要条件

要件
サポートされている最小のクライアント
Windows XP [ デスクトップアプリの | UWP アプリ]
サポートされている最小のサーバー
Windows Server 2003 [ デスクトップアプリの | UWP アプリ]
ヘッダー
WinUser .h (Windows .h を含む)

関連項目

ログオフしています

シャットダウンしています

DefWindowProc

ExitWindows

SetProcessShutdownParameters

WM _ ENDSESSION