событие 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
Значение | Значение |
---|---|
|
Идентификатор сообщения. |
wParam
Значение | Значение |
---|---|
|
Идентификатор события. |
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 |
Верхний колонтитул |
|