The GetMessage API is an interesting example of the bizarre Microsoft Troolean (as opposed to traditional, Boolean)
logic. GetMessage is defined to return a BOOL, but the documentation specifies three types of returns, non-
zero,
zero and -1. I am not making it up! Here's an excerpt from the help file:
* If the function retrieves a message other than WM_QUIT, the return value is nonzero.
* If the function retrieves the WM_QUIT message, the return value is
zero.
* If there is an error, the return value is -1.
Excerpt from Reliable Software, LLC