次の方法で共有


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

Value 意味
WM_POWERBROADCAST
536 (0x218)
メッセージの識別子。

wParam

Value 意味
PBT_APMQUERYSUSPEND
0 (0x0)
イベント識別子。

lParam

アクション フラグ。 ビット 0 が 1 の場合、アプリケーションは中断の準備方法についての指示をユーザーに求めることができます。それ以外の場合、アプリケーションはユーザーの操作なしで準備する必要があります。 他のすべてのビット値は予約されています。

戻り値

中断の要求を許可するには、TRUE を返します。 要求を拒否するには、BROADCAST_QUERY_DENY を返します。

解説

アプリケーションはこのイベントをできるだけ早く処理する必要があります。 アプリケーションは、Flags パラメーターのビット 0 が設定されている場合にのみ、中断の準備方法についての指示をユーザーに求めることができます。 ただし、ユーザーがノート PC の蓋を閉じているためにこのメッセージが発行された場合、ユーザーにメッセージを表示することはできません。 アプリケーションは、ユーザーがノート PC の蓋を閉じるか電源ボタンを押すときに想定される特定の動作を考慮し、移行を成功させる必要があります。

システムでは、アプリケーションが PBT_APMQUERYSUSPEND イベントを送信している WM_POWERBROADCAST メッセージをアプリケーションのメッセージ キューから削除するまでに約 20 秒の猶予を与えます。 アプリケーションが 20 秒以内にキューからメッセージを削除しない場合、システムはアプリケーションが非応答状態にあり、アプリケーションがスリープ要求に同意したと見なします。 メッセージ キューを処理しないアプリケーションでは、操作が中断される可能性があります。 メッセージ キューからメッセージを削除した後、アプリケーションはスリープ状態に入る前に、必要な操作を実行するために必要なだけ時間をかけることができます。 システムでは、PBT_APMSUSPEND の処理中に操作の完了に 20 秒しか許容されていないため、20 秒以上かかる可能性のある操作はこの時点で実行する必要があります。

要件

要件 Value
サポートされている最小のクライアント
Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー
Windows Server 2003 (デスクトップ アプリのみ)
クライアント サポートの終了
Windows XP
サーバー サポートの終了
Windows Server 2003
ヘッダー
WinUser.h (Windows.h を含む)

関連項目