Меня немного смущает объяснение msdn GetMessage.
Они утверждают, что BOOL GetMessage () может вернуть 0, когда метод получает WM_QUIT. Он возвращает -1 при возникновении ошибки и возвращает положительное значение для любого другого сообщения.
Но как это может быть. Логическое значение должно быть ложным или истинным, 0 или 1. Как оно может вернуть -1.
Ссылка на msdn GetMessage: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmessage
Тип Windows BOOL - это просто определение типа целого числа. Вы не должны путать это с cpp bool, потому что это может быть только true и false
В мире Windows, BOOL является псевдонимом типа для int (согласно официальной документации ). Поэтому он может иметь любое значение, которое может иметь int.
BOOL
int