Chapter 27
In this chapter, I'll discuss the system's hardware input model. Specifically, we'll examine how keystrokes and mouse events enter the system and get dispatched to the appropriate window procedure. One of Microsoft's main goals for the input model was to ensure that one thread's action could not adversely affect another thread's actions. Here's an example from 16-bit Windows: If a task entered an infinite loop, all tasks were hung and could no longer respond to the user. The user had to reboot the computer. This gave too much control to a single task. Robust operating systems, such as Windows 2000 and Windows 98, do not allow a hung thread to prevent other threads in the system from receiving hardware input.