procedure TForm1.WMENDSESSION(var Msg: TWMQueryEndSession);
Macht nicht so viel Sinn oder
TMessageWM
QueryEndSession ... nimm doch einfach auch TWMEndSession ...
So hast du ja nur den Message Handler umbenannt, aber nicht die Message neu definiert, auf die du reagieren willst.
Florian