Найдено на форуме forum.dev.by.
Выдержка из MSDN. Кто не в курсе, это маны от микрософта. Оказывается, там работают те еще тролли и шутники.
Первоапрельский сюжет из MSDN (специалисты из лагеря не-Windows должны оценить):
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644936(v=vs.85).aspx4
По порядку:
GetMessage function
. . .
BOOL WINAPI GetMessage(
Out LPMSG lpMsg,
Inopt_ HWND hWnd,
In UINT wMsgFilterMin,
In UINT wMsgFilterMax
);
. . .
Return value
Type: BOOL
. . .
БУУУЛ! Запомнили? Теперь уточним:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx2
. . .
BOOL
A Boolean variable (should be TRUE or FALSE).
. . .
Пока что всё понятно? BOOL - он и в Африке BOOL. А теперь возвращаемся к описанию функции GetMessage () и читаем дальше:
. . .
Because the return value can be nonzero, zero, or -1, avoid code like this:
while (GetMessage( lpMsg, hWnd, 0, 0)) ...
. . .
Аплодисменты. Занавес
The possibility of a -1 return value in the case that hWnd is an invalid parameter (such as referring to a window that has already been destroyed) means that such code can lead to fatal application errors.
Корявый буржуйско-православный перевод:
<<<
Возможность возврата -1 в случае если hWind передан неправильный параметр, такой как ссылка на окно которое уже было уничтожено.
>>>
Я вот думаю, неуже ли так сложно сделать проверку?
И, собственно, сам анекдот:
Значение синуса в военное время может достигать +-4.