Each DirectInputDevice object represents one input device such as a mouse, keyboard, or joystick. (In this documentation, the term "joystick" includes other game devices that behave similarly, such as steering wheels and game pads.)
You create a DirectInputDevice instance by calling the IDirectInput::CreateDevice method, which returns a pointer to the IDirectInputDevice interface. The IDirectInputDevice methods are used to get information about the device, set its properties, and get data from it.
Note A physical device that is really a combination of different types of input devices, such as a keyboard with a trackball, may be represented by two or more DirectInputDevice objects. A force feedback device is represented by a single joystick object that handles both input and output.