| Microsoft DirectX 8.1 (C++) | 
Applications use the methods of the IDirectInput8 interface to enumerate, create, and retrieve the status of Microsoft® DirectInput® devices, initialize the DirectInput object, and invoke an instance of the Microsoft Windows® Control Panel.
IDirectInput8 supersedes the IDirectInput, IDirectInput2, and IDirectInput7 interfaces used in earlier versions of Microsoft DirectX®.
IDirectInput8 is an interface to a new class of object, represented by the class identifier CLSID_DirectInput8, and cannot be obtained by calling QueryInterface on an interface to objects of class CLSID_DirectInput. Instead, obtain the IDirectInput8 interface by using the DirectInput8Create function.
The methods of the IDirectInput8 interface can be organized into the following groups.
| Device Management | ConfigureDevices | 
| CreateDevice | |
| EnumDevices | |
| EnumDevicesBySemantics | |
| FindDevice | |
| GetDeviceStatus | |
| Miscellaneous | Initialize | 
| RunControlPanel | 
The IDirectInput interface, like all COM interfaces, inherits the IUnknown interface methods. The IUnknown interface supports the following three methods:
| IUnknown | AddRef | 
| QueryInterface | |
| Release | 
The LPDIRECTINPUT8 type is defined as a pointer to the IDirectInput8 interface:
typedef struct IDirectInput8 *LPDIRECTINPUT8;
  Windows NT/2000/XP: Requires Windows® 2000.
  Windows 98/Me: Requires Windows 98 or later. Available as a redistributable for Windows 98.
  Header: Declared in Dinput.h.