При написании программ для многих операционных систем обычно вы исходили из того, что именно ваша программа инициирует взаимодействие с данной операционной системой. Например, в системе DOS программа сама осуществляет запросы на выполнение таких операций, как ввод и вывод информации. Другими словами, программы, написанные «традиционным» способом, сами обращаются к операционной системе, а операционная система после запуска прикладную программу не вызывает. Windows же в значительной степени работает совсем наоборот. Именно Windows осуществляет обращение к прикладным программам. Этот процесс происходит примерно следующим образом. Программа находится в состоянии ожидания до тех пор, пока Windows не пошлет ей сообщение. Сообщение передается прикладной программе посредством специальной функции, которая вызывается самой Windows. После того как сообщение будет принято, предполагается, что прикладная программа должна выполнить соответствующее действие. Хотя в ответ на принятое сообщение прикладная программа может вызвать одну или несколько функций API, тем не менее, именно Windows инициирует всю эту «бурную» деятельность. По сравнению с остальными аспектами, именно механизм взаимодействия с Windows посредством сообщений больше всего определяет общий вид (структуру) всех Windows-программ.
Существует множество разнообразных типов сообщений, которые Windows 2000 может посылать вашей программе. Например, всякий раз, когда выполняется щелчок кнопкой мыши в пределах принадлежащего прикладной программе окна, ей (программе) посылается сообщение о щелчке кнопкой мыши. Другой тип сообщений посылается каждый раз, когда должно быть перерисовано окно, принадлежащее прикладной программе. Кроме того, сообщения иного вида посылаются прикладной программе каждый раз, когда пользователь нажимает клавишу, если приложение сфокусировано на вводе информации. Поэтому необходимо твердо усвоить следующую аксиому: построение прикладной программы должно исходить из предпосылки, что сообщения поступают к ней практически совершенно случайным образом. Вот почему Windows-приложения представляют собой управляемые прерываниями программы. Ведь вы не можете точно предсказать, каким будет следующее сообщение.