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


событие PBT_APMQUERYSUSPEND

PBT_APMQUERYSUSPEND доступен для использования в операционных системах, указанных в разделе "Требования". Поддержка этого события была удалена в Windows Vista. Вместо этого используйте SetThreadExecutionState .]

Запрашивает разрешение на приостановку компьютера. Приложение, которое предоставляет разрешение, должно выполнять подготовку к приостановке перед возвратом.

Окно получает это событие через сообщение WM_POWERBROADCAST. Параметры wParam и lParam задаются следующим образом.

LRESULT 
CALLBACK 
WindowProc( HWND   hwnd,    // handle to window
            UINT   uMsg,    // WM_POWERBROADCAST
            WPARAM wParam,  // PBT_APMQUERYSUSPEND
            LPARAM lParam); // action flags

Параметры

hwnd

Дескриптор окна.

uMsg

Значение Значение
WM_POWERBROADCAST
536 (0x218)
Идентификатор сообщения.

wParam

Значение Значение
PBT_APMQUERYSUSPEND
0 (0x0)
Идентификатор события.

lParam

Флаги действий. Если бит 0 равен 1, приложение может предложить пользователю указания о том, как подготовиться к приостановке; в противном случае приложение должно подготовиться без взаимодействия с пользователем. Все остальные битовые значения зарезервированы.

Возвращаемое значение

Верните значение TRUE , чтобы предоставить запрос на приостановку. Чтобы запретить запрос, верните BROADCAST_QUERY_DENY.

Замечания

Приложение должно обрабатывать это событие как можно быстрее. Приложение может предложить пользователю указания о том, как подготовиться к приостановке только в том случае, если задан бит 0 в параметре Flags . Однако если это сообщение выдано, так как пользователь закрывает крышку ноутбука, пользователю не удастся побудить пользователя. Приложения должны учитывать, что пользователь ожидает определенного поведения при закрытии крышки ноутбука или нажатии кнопки питания и позволить переходу успешно.

Система позволяет приложению удалить WM_POWERBROADCAST сообщение, отправляющее событие PBT_APMQUERYSUSPEND из очереди сообщений приложения, примерно 20 секунд. Если приложение не удаляет сообщение из очереди менее чем за 20 секунд, система предполагает, что приложение находится в состоянии без отклика, и что приложение согласится с запросом на спящий режим. Приложения, которые не обрабатывают очереди сообщений, могут прерывать свои операции. После удаления сообщения из очереди сообщений приложение может занять столько времени, сколько потребуется для выполнения любых необходимых операций перед вводом состояния сна. Все операции, которые могут занять больше 20 секунд, должны выполняться в это время, так как система позволяет выполнять только 20 секунд для операций во время обработки PBT_APMSUSPEND .

Requirements

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Завершение поддержки клиентов
Windows XP
Завершение поддержки сервера
Windows Server 2003
Верхний колонтитул
WinUser.h (включая Windows.h)

См. также