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。
備註
應用程式應該儘快處理此事件。 只有當已設定 Flags 參數中的位 0 時,應用程式才能提示使用者提供如何準備暫停的指示。 不過,如果因為使用者關閉膝上型電腦蓋而發出此訊息,則無法提示使用者。 當使用者關閉膝上型電腦蓋或按下電源按鈕,並允許轉換成功時,應用程式應遵守預期有特定行為。
系統允許大約 20 秒讓應用程式移除從應用程式訊息佇列傳送 PBT_APMQUERYSUSPEND事件的WM_POWERBROADCAST 訊息。 如果應用程式未在 20 秒內從其佇列中移除訊息,系統會假設應用程式處於非回應狀態,且應用程式同意睡眠要求。 未處理其訊息佇列的應用程式可能會中斷其作業。 從訊息佇列中移除訊息之後,應用程式可能需要花費太多時間來執行任何必要的作業,再進入睡眠狀態。 此時應該執行任何可能需要較長時間的作業 20 秒,因為系統只允許在 PBT_APMSUSPEND 處理期間完成作業 20 秒。
規格需求
| 需求 | 值 |
|---|---|
| 最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
| 最低支援的伺服器 |
Windows Server 2003 [僅限桌面應用程式] |
| 用戶端支援結束 |
Windows XP |
| 伺服器終止支援 |
Windows Server 2003 |
| 標頭 |
|