Este procedure lo encontré en la Trucomanía y sirve para saber cuando Windows manda a cerrar tu programa, por ejemplo, al cerrar la sesión de trabajo.
Código Delphi
[-]
private
procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
implementation
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
Msg.result := 1;
end;