DIDEVICEINSTANCE
Describes an instance of a Microsoft® DirectInput® device. This structure is used with the IDirectInput8::EnumDevices, IDirectInput8::EnumDevicesBySemantics, and IDirectInputDevice8::GetDeviceInfo methods.
typedef struct DIDEVICEINSTANCE {
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;
Members
- dwSize
- Size of this structure, in bytes. This member must be initialized before the structure is used.
- guidInstance
- Unique identifier for the instance of the device. An application can save the instance GUID into a configuration file and use it at a later time. Instance GUIDs are specific to a particular computer. An instance GUID obtained from one computer is unrelated to instance GUIDs on another.
- guidProduct
- Unique identifier for the product. This identifier is established by the manufacturer of the device.
- dwDevType
- Device type specifier. The least-significant byte of the device type description code specifies the device type. The next-significant byte specifies the device subtype. This value can also be combined with DIDEVTYPE_HID, which specifies a Human Interface Device (HID).
- tszInstanceName[MAX_PATH]
- Friendly name for the instance. For example, "Joystick 1."
- tszProductName[MAX_PATH]
- Friendly name for the product.
- guidFFDriver
- Unique identifier for the driver being used for force feedback. The driver's manufacturer establishes this identifier.
- wUsagePage
- If the device is a Human Interface Device (HID), this member contains the HID usage page code.
- wUsage
- If the device is a Human Interface Device (HID), this member contains the HID usage code.
Remarks
The following device types and subtypes are defined for use in the dwDevType member.
- DI8DEVTYPE_1STPERSON
- First-person action game device. The following subtypes are defined.
- DI8DEVTYPE1STPERSON_LIMITED
- Device that does not provide the minimum number of device objects for action mapping.
- DI8DEVTYPE1STPERSON_SHOOTER
- Device designed for first-person shooter games.
- DI8DEVTYPE1STPERSON_SIXDOF
- Device with six degrees of freedom; that is, three lateral axes and three rotational axes.
- DI8DEVTYPE1STPERSON_UNKNOWN
- Unknown subtype.
- DI8DEVTYPE_DEVICE
- Device that does not fall into another category.
- DI8DEVTYPE_DEVICECTRL
- Input device used to control another type of device from within the context of the application. The following subtypes are defined.
- DI8DEVTYPEDEVICECTRL_COMMSSELECTION
- Control used to make communications selections.
- DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED
- Device that must use its default configuration and cannot be remapped.
- DI8DEVTYPEDEVICECTRL_UNKNOWN
- Unknown subtype.
- DI8DEVTYPE_DRIVING
- Device for steering. The following subtypes are defined.
- DI8DEVTYPEDRIVING_COMBINEDPEDALS
- Steering device that reports acceleration and brake pedal values from a single axis.
- DI8DEVTYPEDRIVING_DUALPEDALS
- Steering device that reports acceleration and brake pedal values from separate axes.
- DI8DEVTYPEDRIVING_HANDHELD
- Hand-held steering device.
- DI8DEVTYPEDRIVING_LIMITED
- Steering device that does not provide the minimum number of device objects for action mapping.
- DI8DEVTYPEDRIVING_THREEPEDALS
- Steering device that reports acceleration, brake, and clutch pedal values from separate axes.
- DI8DEVTYPE_FLIGHT
- Controller for flight simulation. The following subtypes are defined.
- DI8DEVTYPEFLIGHT_LIMITED
- Flight controller that does not provide the minimum number of device objects for action mapping.
- DI8DEVTYPEFLIGHT_RC
- Flight device based on a remote control for model aircraft.
- DI8DEVTYPEFLIGHT_STICK
- Joystick.
- DI8DEVTYPEFLIGHT_YOKE
- Yoke.
- DI8DEVTYPE_GAMEPAD
- Gamepad. The following subtypes are defined.
- DI8DEVTYPEGAMEPAD_LIMITED
- Gamepad that does not provide the minimum number of device objects for action mapping.
- DI8DEVTYPEGAMEPAD_STANDARD
- Standard gamepad that provides the minimum number of device objects for action mapping.
- DI8DEVTYPEGAMEPAD_TILT
- Gamepad that can report x-axis and y-axis data based on the attitude of the controller.
- DI8DEVTYPE_JOYSTICK
- Joystick. The following subtypes are defined.
- DI8DEVTYPEJOYSTICK_LIMITED
- Joystick that does not provide the minimum number of device objects for action mapping.
- DI8DEVTYPEJOYSTICK_STANDARD
- Standard joystick that provides the minimum number of device objects for action mapping.
- DI8DEVTYPE_KEYBOARD
- Keyboard or keyboard-like device. The following subtypes are defined.
- DI8DEVTYPEKEYBOARD_UNKNOWN
- Subtype could not be determined.
- DI8DEVTYPEKEYBOARD_PCXT
- IBM PC/XT 83-key keyboard.
- DI8DEVTYPEKEYBOARD_OLIVETTI
- Olivetti 102-key keyboard.
- DI8DEVTYPEKEYBOARD_PCAT
- IBM PC/AT 84-key keyboard.
- DI8DEVTYPEKEYBOARD_PCENH
- IBM PC Enhanced 101/102-key or Microsoft Natural® keyboard.
- DI8DEVTYPEKEYBOARD_NOKIA1050
- Nokia 1050 keyboard.
- DI8DEVTYPEKEYBOARD_NOKIA9140
- Nokia 9140 keyboard.
- DI8DEVTYPEKEYBOARD_NEC98
- Japanese NEC PC98 keyboard.
- DI8DEVTYPEKEYBOARD_NEC98LAPTOP
- Japanese NEC PC98 laptop keyboard.
- DI8DEVTYPEKEYBOARD_NEC98106
- Japanese NEC PC98 106-key keyboard.
- DI8DEVTYPEKEYBOARD_JAPAN106
- Japanese 106-key keyboard.
- DI8DEVTYPEKEYBOARD_JAPANAX
- Japanese AX keyboard.
- DI8DEVTYPEKEYBOARD_J3100
- Japanese J3100 keyboard.
- DI8DEVTYPE_MOUSE
- A mouse or mouse-like device (such as a trackball). The following subtypes are defined.
- DI8DEVTYPEMOUSE_ABSOLUTE
- Mouse that returns absolute axis data.
- DI8DEVTYPEMOUSE_FINGERSTICK
- Fingerstick.
- DI8DEVTYPEMOUSE_TOUCHPAD
- Touchpad.
- DI8DEVTYPEMOUSE_TRACKBALL
- Trackball.
- DI8DEVTYPEMOUSE_TRADITIONAL
- Traditional mouse.
- DI8DEVTYPEMOUSE_UNKNOWN
- Subtype could not be determined.
- DI8DEVTYPE_REMOTE
- Remote-control device. The following subtype is defined.
- DI8DEVTYPEREMOTE_UNKNOWN
- Subtype could not be determined.
- DI8DEVTYPE_SCREENPOINTER
- Screen pointer. The following subtypes are defined.
- DI8DEVTYPESCREENPTR_UNKNOWN
- Unknown subtype.
- DI8DEVTYPESCREENPTR_LIGHTGUN
- Light gun.
- DI8DEVTYPESCREENPTR_LIGHTPEN
- Light pen.
- DI8DEVTYPESCREENPTR_TOUCH
- Touch screen.
- DI8DEVTYPE_SUPPLEMENTAL
- Specialized device with functionality unsuitable for the main control of an application, such as pedals used with a wheel. The following subtypes are defined.
- DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER
- Secondary handheld controller.
- DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS
- Device whose primary function is to report acceleration and brake pedal values from a single axis.
- DI8DEVTYPESUPPLEMENTAL_DUALPEDALS
- Device whose primary function is to report acceleration and brake pedal values from separate axes.
- DI8DEVTYPESUPPLEMENTAL_HANDTRACKER
- Device that tracks hand movement.
- DI8DEVTYPESUPPLEMENTAL_HEADTRACKER
- Device that tracks head movement.
- DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS
- Device with rudder pedals.
- DI8DEVTYPESUPPLEMENTAL_SHIFTER
- Device that reports gear selection from an axis.
- DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE
- Device that reports gear selection from button states.
- DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE
- Device whose primary function is to report at least two throttle values. It may have other controls.
- DI8DEVTYPESUPPLEMENTAL_THREEPEDALS
- Device whose primary function is to report acceleration, brake, and clutch pedal values from separate axes.
- DI8DEVTYPESUPPLEMENTAL_THROTTLE
- Device whose primary function is to report a single throttle value. It may have other controls.
- DI8DEVTYPESUPPLEMENTAL_UNKNOWN
- Unknown subtype.
Versions of DirectInput earlier than Microsoft DirectX® 8.0 have a somewhat different scheme of device types and subtypes. See the DIDEVTYPExxx defines in Dinput.h.
Requirements
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.