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] |
Заголовок |
|
См. также раздел