Share via


PBT_APMQUERYSUSPEND-Ereignis

PBT_APMQUERYSUSPEND ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt „Anforderungen“ angegeben sind. Die Unterstützung für dieses Ereignis wurde in Windows Vista entfernt. Verwenden Sie stattdessen SetThreadExecutionState.]

Fordert die Berechtigung zum Anhalten des Computers an. Eine Anwendung, die die Erlaubnis erteilt, sollte die Vorbereitungen für die Unterbrechung vor der Rückgabe treffen.

Ein Fenster empfängt dieses Ereignis über die WM_POWERBROADCAST-Meldung. Die Parameter wParam und lParam werden wie folgt festgelegt.

LRESULT 
CALLBACK 
WindowProc( HWND   hwnd,    // handle to window
            UINT   uMsg,    // WM_POWERBROADCAST
            WPARAM wParam,  // PBT_APMQUERYSUSPEND
            LPARAM lParam); // action flags

Parameter

hwnd

Ein Handle zum Fenster.

uMsg

Wert Bedeutung
WM_POWERBROADCAST
536 (0x218)
Meldungsbezeichner.

wParam

Wert Bedeutung
PBT_APMQUERYSUSPEND
0 (0x0)
Ereignisbezeichner.

lParam

Das Aktions-Flag. Wenn das 0. Bit 1 ist, kann die Anwendung den Benutzer bzw. die Benutzerin auffordern, Anweisungen zur Vorbereitung der Unterbrechung zu geben; andernfalls muss die Anwendung die Vorbereitung ohne Benutzerinteraktion durchführen. Alle anderen Bitwerte sind reserviert.

Rückgabewert

Geben Sie TRUE zurück, um die Anforderung zum Anhalten zu gewähren. Um die Anforderung zu verweigern, geben Sie BROADCAST_QUERY_DENY zurück.

Hinweise

Eine Anwendung sollte dieses Ereignis so schnell wie möglich verarbeiten. Die Anwendung kann den Benutzer bzw. die Benutzerin nur dann um Anweisungen zur Vorbereitung der Unterbrechung bitten, wenn das 0. Bit im Parameter Flags gesetzt ist. Wenn diese Meldung jedoch ausgegeben wird, weil der Benutzer bzw. die Benutzerin den Laptop schließt, ist dies nicht möglich. Um einen erfolgreichen Übergang zu gewährleisten, sollten Anwendungen das von Benutzer*innen erwartete Verhalten befolgen, wenn der Laptop geschlossen oder der Einschaltknopf drückt wird.

Das System lässt einer Anwendung etwa 20 Sekunden Zeit, um die Meldung WM_POWERBROADCAST, die das Ereignis PBT_APMQUERYSUSPEND sendet, aus der Meldungswarteschlange der Anwendung zu entfernen. Wenn eine Anwendung die Meldung nicht in weniger als 20 Sekunden aus ihrer Warteschlange entfernt, geht das System davon aus, dass die Anwendung nicht mehr reagiert und der Anforderung des Ruhezustands zustimmt. Anwendungen, die ihre Meldungswarteschlangen nicht verarbeiten, haben möglicherweise Probleme bei der Ausführung ihrer Vorgänge. Nachdem sie die Meldung aus der Meldungswarteschlange entfernt hat, kann sich eine Anwendung so viel Zeit nehmen, wie sie benötigt, um alle erforderlichen Vorgänge durchzuführen, bevor sie in den Ruhezustand übergeht. Zu diesem Zeitpunkt sollten alle Vorgänge, die länger als 20 Sekunden dauern könnten, ausgeführt werden, da das System während der Verarbeitung von PBT_APMSUSPEND nur 20 Sekunden für den Abschluss von Vorgängen zulässt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Ende des Clientsupports
Windows XP
Ende der Serverunterstützung
Windows Server 2003
Header
WinUser.h (include Windows.h)

Siehe auch