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
頁首
WinUser.h (包括 Windows.h)

另請參閱