Завершение сеанса работы пользователя (Log Off).
Завершить сеанс работы текущего пользователя
можно при помощи функции ExitWindows.
Предварительно, все приложения должны завершить
свою работу. Если какое-нибудь из приложений при
обработке сообщения WM_QUERYENDSESSION
вернёт FALSE, то сеанс работы пользователя не будет
завершён. Таким образом, если в Вашем приложении
есть обработчик сообщения WM_QUERYENDSESSION, то Вы
можете прекратить операцию завершения сеанса,
даже если запрос на завершение сеанса был
отправлен самой системой.
Следующий пример показывает, как завершить
сеанс работы текущего пользователя. Также в
примере демонстрируется, как приложение может
предотвратить операцию завершения сеанса
пользователя.
// Завершаем сеанс работы текущего пользователя.
ExitWindows(0, 0);
// Обрабатываем сообщение в оконной процедуре приложения.
case WM_QUERYENDSESSION:
{
int r;
r = MessageBox(NULL, "Shut down?","WM_QUERYENDSESSION", MB_YESNO);
// Возращаем TRUE, если пользователь согласен, иначе FALSE.
return r == IDYES;
break;
}
|