The basic architecture of DirectInput consists of the DirectInput object, which supports a COM interface, and an object for each input device that provides data. Each device in turn has "object instances," which are individual controls or switches such as keys, buttons, or axes. Individual force feedback effects are also represented by objects.
Note The word "object" is used to describe an entity created by the DirectInput system to support the methods of a COM interface, even when these methods are not being called through an object-oriented programming language such as C++. Somewhat confusingly, "object" may also mean one of the individual controls on an input device.
In the interests of speed and responsiveness, DirectInput works directly with device drivers, bypassing the Windows message system.
DirectInput enables an application to gain access to input devices even when the application is in the background.