As we noted at the end of part 3,
now that you know the conventions surrounding
the WM_QUIT message
you can put them to your advantage.
The more robust you want the TimedMessageBox function
to be, the more work you need to do.
Here's the cheap version,
based on the
sample in the Knowledge Base,
but with some additional bug fixes...