PBT_APMQUERYSUSPEND事件

[PBT_APMQUERYSUSPEND可用於需求一節中指定的作業系統。 Windows Vista 已移除此事件的支援。 請改 用 SetThreadExecutionState 。]

要求暫停電腦的許可權。 授與使用權限的應用程式在回傳之前應該要執行暫停的準備。

視窗會透過 WM_POWERBROADCAST 訊息接收此事件。 wParamlParam參數的設定如下所述。

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)

另請參閱

系統喚醒事件

電源管理事件

PBT_APMSUSPEND

WM_POWERBROADCAST