Impedindo o desligamento do Windows

Para detectar e impedir o desligamento do computador, uso um programa muito simples. Possui apenas um formulário e um procedimento privado, como abaixo:

TForm3 = class(TForm)
private
  procedure WMQueryEndSession(var Msg : TWMQueryEndSession) ;
         message WM_QueryEndSession;
end;

e a implementação

procedure TForm3.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
  Msg.Result := 0; //so I don't want to shutdown while my program is running
end;

Eu o compilei Delphi 5 e Delphi 2010. Ambos detectam o desligamento. Mas quando eu compilei no Delphi 2010; depois de impedir o desligamento, meu programa é fechado. (O PC não desliga)

Como obtenho o mesmo resultado de ambos?

questionAnswers(7)

yourAnswerToTheQuestion