Programm beim Herunterfahren beenden

Hallo Leute,
ich habe ein kleines Programm, das beim Herunterfahren (oder Abmelden) von Windows noch einige Arbeiten erledigen soll und sich dann beenden, sodass das Herunterfahren fortgesetzt werden kann. Das will bei mir nicht so recht…
Soweit ich weiß, gibt es da zwie Botschaften: wm_QueryEndSession und wm_EndSession. NUr werd ich aus dem Hilfe-Text nicht ganz schlau… wann muss ich welcher Botschaft welchen Wert zurückgeben, und wo muss ich meine Aktionen reinschreiben.
Egal was ich probiert hab, das Herunterfahren ist immer stehengeblieben. Wenn ich das Programm beendet hab, und nochmal auf den Knopf gedrückt habe, gings dann…
Mein Programm hat auch eine Abfrage drin, ob wirklich beendet werden soll, diese soll beim Herunterfahren natürlich erst gar nicht angezeigt werden…

Ich hoffe ihr habt ein paar Tipps für mich, ich kenn mich mit der Botschaften-Architektur von Windows noch nicht so wahnsinnig aus.

nachtrag: mein programm bekommt die botschaft WM_EndSession immer mit parameter false (sprich: windows wird nicht beendet). eine kleines testprogramm mit der selben „beenden-architektur“ bekommt aber ein true! was verhindert, dass mein programm ein true bekommt, obwohl ich auf die WM_QueryEndSession mit 1 antworte??