IDirectInputDevice

Applications use the methods of the IDirectInputDevice interface to gain and release access to DirectInput devices, manage device properties and information, set behavior, perform initialization, and invoke a device's control panel. The IDirectInputDevice2 interface adds force feedback capabilities and support for polled devices.

The IDirectInputDevice interface is obtained by using the IDirectInput::CreateDevice method. The IDirectInputDevice2 interface is obtained by calling the IDirectInputDevice::QueryInterface method; for an example, see Creating a DirectInput Device.

This section is a reference to the methods of these interfaces.

The methods of the IDirectInputDevice interface can be organized into the following groups.

Accessing input devices Acquire
  Unacquire
Device information GetCapabilities
  GetDeviceData
  GetDeviceInfo
  GetDeviceState
  SetDataFormat
  SetEventNotification
Device objects EnumObjects
  GetObjectInfo
Device properties GetProperty
  SetProperty
Setting behavior SetCooperativeLevel
Miscellaneous Initialize
  RunControlPanel

The IDirectInputDevice interface, like all COM interfaces, inherits the IUnknown interface methods. The IUnknown interface supports the following three methods:

AddRef  
QueryInterface  
Release  

The IDirectInputDevice2 interface supports all the above methods as well as the following additional methods:

CreateEffect  
EnumCreatedEffectObjects  
EnumEffects  
Escape  
GetEffectInfo  
GetForceFeedbackState  
Poll  
SendDeviceData  
SendForceFeedbackCommand  

The LPDIRECTINPUTDEVICE and LPDIRECTINPUTDEVICE2 types are defined as pointers to the IDirectInput interface:

typedef struct IDirectInputDevice *LPDIRECTINPUTDEVICE;

typedef struct IDirectInputDevice2 *LPDIRECTINPUTDEVICE2;