Завершение сеанса работы пользователя (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;
}
|