The DIDEVICEINSTANCE structure contains information about an instance of a DirectInput device. This structure is used with the IDirectInput::EnumDevices and IDirectInputDevice::GetDeviceInfo methods.
typedef struct {
DWORD dwSize;
GUID guidInstance;
GUID guidProduct;
DWORD dwDevType;
TCHAR tszInstanceName[MAX_PATH];
TCHAR tszProductName[MAX_PATH];
GUID guidFFDriver;
WORD wUsagePage;
WORD wUsage;
} DIDEVICEINSTANCE, *LPDIDEVICEINSTANCE;
typedef const DIDEVICEINSTANCE *LPCDIDEVICEINSTANCE;
Size of this structure, in bytes. This member must be initialized before the structure is used.
| DIDEVTYPE_MOUSE | |
| A mouse or mouse-like device (such as a trackball). | |
| DIDEVTYPE_KEYBOARD | |
| A keyboard or keyboard-like device. | |
| DIDEVTYPE_JOYSTICK | |
| A joystick or similar device, such as a steering wheel | |
| DIDEVTYPE_DEVICE | |
| A device that does not fall into the above categories | |
The following subtypes are defined for mouse-type devices.
| DIDEVTYPEMOUSE_UNKNOWN | |
| The subtype could not be determined. | |
| DIDEVTYPEMOUSE_TRADITIONAL | |
| The device is a traditional mouse. | |
| DIDEVTYPEMOUSE_FINGERSTICK | |
| The device is a fingerstick. | |
| DIDEVTYPEMOUSE_TOUCHPAD | |
| The device is a touchpad. | |
| DIDEVTYPEMOUSE_TRACKBALL | |
| The device is a trackball. | |
The following subtypes are defined for keyboard-type devices.
| DIDEVTYPEKEYBOARD_UNKNOWN | |
| The subtype could not be determined | |
| DIDEVTYPEKEYBOARD_PCXT | |
| IBM PC/XT 83-key keyboard. | |
| DIDEVTYPEKEYBOARD_OLIVETTI | |
| Olivetti 102-key keyboard. | |
| DIDEVTYPEKEYBOARD_PCAT | |
| IBM PC/AT 84-key keyboard. | |
| DIDEVTYPEKEYBOARD_PCENH | |
| IBM PC Enhanced 101/102-key or Microsoft Natural keyboard. | |
| DIDEVTYPEKEYBOARD_NOKIA1050 | |
| Nokia 1050 keyboard. | |
| DIDEVTYPEKEYBOARD_NOKIA9140 | |
| Nokia 9140 keyboard. | |
| DIDEVTYPEKEYBOARD_NEC98 | |
| Japanese NEC PC98 keyboard. | |
| DIDEVTYPEKEYBOARD_NEC98LAPTOP | |
| Japanese NEC PC98 laptop keyboard. | |
| DIDEVTYPEKEYBOARD_NEC98106 | |
| Japanese NEC PC98 106-key keyboard. | |
| DIDEVTYPEKEYBOARD_JAPAN106 | |
| Japanese 106-key keyboard. | |
| DIDEVTYPEKEYBOARD_JAPANAX | |
| Japanese AX keyboard. | |
| DIDEVTYPEKEYBOARD_J3100 | |
| Japanese J3100 keyboard. | |
The following subtypes are defined for joystick-type devices.
| DIDEVTYPEJOYSTICK_UNKNOWN | |
| The subtype could not be determined. | |
| DIDEVTYPEJOYSTICK_TRADITIONAL | |
| A traditional joystick. | |
| DIDEVTYPEJOYSTICK_FLIGHTSTICK | |
| A joystick optimized for flight simulation. | |
| DIDEVTYPEJOYSTICK_GAMEPAD | |
| A device whose primary purpose is to provide button input. | |
| DIDEVTYPEJOYSTICK_RUDDER | |
| A device for yaw control. | |
| DIDEVTYPEJOYSTICK_WHEEL | |
| A steering wheel. | |
| DIDEVTYPEJOYSTICK_HEADTRACKER | |
| A device that tracks the movement of the user's head | |
The high-order word of the device type description code contains flags that further identify the device.
| DIDEVTYPE_HID | |
| The device uses the Human Interface Device (HID) protocol. | |
For compatibility with previous versions of DirectX, a DIDEVICEINSTANCE_DX3 structure is also defined, containing only the first six members of the DIDEVICEINSTANCE structure.
Windows NT: Use version 5.0 or later.
Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
Windows CE: Unsupported.
Header: Declared in dinput.h.