WM_ENDSESSION訊息
WM_ENDSESSION訊息會在系統處理WM_QUERYENDSESSION訊息的結果之後傳送至應用程式。 WM_ENDSESSION訊息會通知應用程式會話是否結束。
視窗會透過其 WindowProc 函式接收此訊息。
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // end-session option
LPARAM lParam // logoff option
);
參數
-
hwnd
-
視窗的控制碼。
-
uMsg
-
WM_ENDSESSION識別碼。
-
wParam
-
如果會話正在結束,此參數為 TRUE;會話可以在所有應用程式從處理此訊息傳回之後,隨時結束。 否則為 FALSE。
-
lParam
-
此參數可以是下列一或多個值。 如果此參數為 0,系統就會關閉或重新開機 (無法判斷發生的事件) 。
值 意義 - ENDSESSION_CLOSEAPP
- 0x1
如果 wParam 為 TRUE,應用程式必須關閉。 任何資料應該會自動儲存,而不提示使用者 (以取得詳細資訊,請參閱) 。 當應用程式使用需要取代的檔案、必須服務系統或系統資源耗盡時,重新開機管理員就會傳送此訊息。 如果應用程式已使用 RegisterApplicationRestart 函式註冊重新開機,將會重新開機。 如需詳細資訊,請參閱 應用程式的指導方針。
如果 wParam 為 FALSE,應用程式不應該關閉。- ENDSESSION_CRITICAL
- 0x40000000
應用程式會強制關閉。 - ENDSESSION_LOGOFF
- 0x80000000
使用者正在登出。 如需詳細資訊,請參閱 登出。 請注意,此參數是位元遮罩。 若要測試此值,請使用位運算;請勿測試是否相等。
傳回值
如果應用程式處理此訊息,它應該會傳回零。
備註
具有未儲存資料的應用程式可以將資料儲存到暫存位置,並在下次應用程式啟動時加以還原。 建議應用程式經常儲存其資料和狀態;例如,在使用者起始的儲存作業之間自動儲存資料,以減少關閉時要儲存的資料量。
當會話結束時,應用程式不需要呼叫 DestroyWindow 或 PostQuitMessage 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 |
Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
標頭 |
|
另請參閱