Поделиться через


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]
Заголовок
WinUser.h (включая Windows.h)

См. также раздел

Выкл. ведение журнала

Завершает работу

Destroywindow

PostQuitMessage

SetProcessShutdownParameters

WM_QUERYENDSESSION