У меня есть процедура, которая выглядит примерно так, в псевдокоде:
while PeekMessage(Message, 0, 0, 0, PM_REMOVE)
HandleMessageAppropriately(Message)
По сути, он проходит и извлекает все сообщения из очереди и отправляет их. Я не могу изменить эту рутину.
У меня есть сценарий, в котором эта подпрограмма, если она вызывается при определенных условиях и в очереди есть сообщение о том, что пользователь нажал ESC
в самый неподходящий момент, может вызвать сбой программы. (Должен любить условия гонки.)
Я не могу изменить приведенную выше процедуру, но я могу изменить код, который ее вызывает. Есть ли какой-нибудь способ, которым я могу сделать что-то непосредственно перед запуском, которое скажет «пройти через очередь сообщений и удалить все сообщения ввода с клавиатуры, когда пользователь нажимает ESC, , не затрагивая остальные элементы в очереди или изменяя их заказ"?