В приложении Win32 С++ мы запускаем цикл сообщений, который извлекает сообщения из очереди, переводит их, а затем отправляет их. В конце концов, каждое сообщение достигает нашего WndProc, где можно связать связанное событие.
Я понимаю эту часть. Я не понимаю, что происходит между ними. В частности:
- Различные типы обработчиков прерываний ОС должны размещать сообщения в указанной "очереди сообщений", но где внутри адресного пространства процесса находится эта очередь? Как он работает с кодом обработчика прерываний?
- Что значит "переводить" сообщение? Что действительно делает вызов
TranslateMessage()
? - Как только отправлено
DispatchMessage()
, что все места делает сообщение качанием, прежде чем достигнуть моего WndProc (то есть, что делает ОС с ним)?
Если кто-то знает ответы на вышесказанное, любезно удовлетворяйте мое любопытство. Спасибо.