Also ihr sollte euch mal klar werden, was ihr da eigentlich macht:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QUERYENDSESSION;
Hier mit deklariert ihr eine Prozedur, die ausgelöst wird, wenn euer Fenster die nachricht von Windows WM_QUERYENDSESSION bekommt.
Und hier:
Delphi-Quellcode:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if MessageDlg('Windows beenden?', mtConfirmation, [mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;
Sagt ihr eurem Programm, was es machen soll, wenn die Nachricht von Windows kommt und von eurem Fenster "empfangen" wird. Das ist keine Prozedur zum Aufrufen aus dem Programm. Es ist nur ein Eventhandler für die Nachricht WM_QUERYENDSESSION, mehr nicht.