Altermativ kannst du ja auch WM_ENDSESSION senden. Darauf sollte sich jede Anwendung ohne weitere Rückfragen selbst beenden.
Was ist wenn noch Daten gespeichert oder zum Abschluss Benutzerhandlungen durchgeführt werden müssen?
Bei WM_ENDSESSION hast du keine Chance nachzufragen - das System fährt dann eigentlich nämlich runter (z.B. bei einem Stromausfall). Wenn die App sich nicht innerhalb eines Timeouts beendet wird sie gekillt. Leider reagieren längst nicht alle Programme korrekt auf diese Message. Aber seine eigenen Programme kann man ja ruhig darauf ausrichten.