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