Try to kill the process tree gracefully.
authorIain Patterson <me@iain.cx>
Thu, 3 Feb 2011 00:22:30 +0000 (00:22 +0000)
committerIain Patterson <me@iain.cx>
Thu, 3 Feb 2011 00:22:30 +0000 (00:22 +0000)
commitfdf66ebb177e189479057ebe4e1124251c0116c3
treedfa706fdb0209f9687af125ff177b7c0876d7131
parent5d8129f70ecd6e6a07f9bb2601c2d8e5f14586f7
Try to kill the process tree gracefully.

Before calling TerminateProcess() on all processes assocatiated with
the monitored application, enumerate all windows and threads and
post appropriate messages to them.  If the application bothers to
listen for such messages it has a chance to shut itself down gracefully.

If the application ignores this chance to do the right thing it's
fair game for termination.
messages.mc
nssm.h
process.cpp
process.h
service.cpp