Human Interface Devices Reference
Overview of the Human Interface Devices (HID) technology reference.
To develop Human Interface Devices, you need these headers:
For HID drivers programming guidance, see:
IOCTLs
IOCTL_KEYBOARD_QUERY_ATTRIBUTES The IOCTL_KEYBOARD_QUERY_ATTRIBUTES request returns information about the keyboard attributes. |
IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES The IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES request returns information about the extended keyboard attributes. |
IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION The IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION request returns information about the mapping between scan codes and keyboard indicators. |
IOCTL_KEYBOARD_QUERY_INDICATORS The IOCTL_KEYBOARD_QUERY_INDICATORS request returns information about the keyboard indicators. |
IOCTL_KEYBOARD_QUERY_TYPEMATIC The IOCTL_KEYBOARD_QUERY_TYPEMATIC request returns the keyboard typematic settings. |
IOCTL_KEYBOARD_SET_INDICATORS The IOCTL_KEYBOARD_SET_INDICATORS request sets the keyboard indicators. |
IOCTL_KEYBOARD_SET_TYPEMATIC The IOCTL_KEYBOARD_SET_TYPEMATIC request sets the keyboard typematic settings. |
IOCTL_MOUSE_QUERY_ATTRIBUTES The IOCTL_MOUSE_QUERY_ATTRIBUTES request returns information about the mouse attributes. |
Functions
Acquire The IDirectInputJoyConfig8::Acquire method acquires "joystick configuration mode." Only one application can be in joystick configuration mode at a time; subsequent attempts by other applications to acquire this mode should receive the error DIERR_OTHERAPPHASPRIO. After entering configuration mode, the application can make alterations to the global joystick configuration settings. The application should check the existing settings before installing the new ones in case another application changed the settings in the interim. |
AddNewHardware The IDirectInputJoyConfig8::AddNewHardware method displays the Add New Hardware dialog box which guides the user through installing a new input device. |
AddRef The IDirectInputEffectDriver::AddRef method increases the reference count of the DirectInputEffectDriver object by 1. This method is part of the IUnknown interface inherited by DirectInputEffectDriver. |
AddRef The IDirectInputJoyConfig8::AddRef method increases the reference count of the DirectInputJoyConfig object by 1. This method is part of the IUnknown interface inherited by DirectInputJoyConfig. |
DeleteConfig The IDirectInputJoyConfig8::DeleteConfig method deletes configuration information about a joystick. |
DeleteType The IDirectInputJoyConfig8::DeleteType method removes information about a joystick type. Use this method with caution; it is the caller's responsibility to ensure that no joystick refers to the deleted type. |
DestroyEffect The IDirectInputEffectDriver::DestroyEffect method removes an effect from the device. If the effect is playing, the driver should stop it before unloading it. |
DeviceID The IDirectInputEffectDriver::DeviceID method sends the driver the identity of the device. |
DownloadEffect The IDirectInputEffectDriver::DownloadEffect method sends an effect to the device. |
EnumTypes The IDirectInputJoyConfig8::EnumTypes method enumerates the joystick types currently supported by DirectInput. |
Escape The IDirectInputEffectDriver::Escape method escapes to the driver. This method is called in response to an application invoking the IDirectInputEffect::Escape or IDirectInputDevice::Escape methods. |
GetConfig The IDirectInputJoyConfig8::GetConfig method obtains information about a joystick's configuration. |
GetEffectStatus The IDirectInputEffectDriver::GetEffectStatus method obtains information about the status of an effect. |
GetForceFeedbackState The IDirectInputEffectDriver::GetForceFeedbackState method retrieves the force-feedback state for the device. |
GetTypeInfo The IDirectInputJoyConfig8::GetTypeInfo method obtains information about a joystick type. |
GetUserValues The IDirectInputJoyConfig8::GetUserValues method obtains information about user settings for the joystick. |
GetVersions The IDirectInputEffectDriver::GetVersions method obtains version information about the force-feedback hardware and driver. |
OpenAppStatusKey The IDirectInputJoyConfig8::OpenAppStatusKey method opens the root key of the application status registry keys, and obtains a handle to the key as a return parameter. |
OpenTypeKey The IDirectInputJoyConfig8::OpenTypeKey method opens the registry key associated with a joystick type. |
QueryInterface The IDirectInputEffectDriver::QueryInterface method determines whether the DirectInputEffectDriver object supports a particular COM interface. |
QueryInterface The IDirectInputJoyConfig8::QueryInterface method determines whether the DirectInputJoyConfig object supports a particular COM interface. |
Release The IDirectInputEffectDriver::Release method decreases the reference count of the DirectInputEffectDriver object by 1. This method is part of the IUnknown interface inherited by DirectInputEffectDriver. |
Release The IDirectInputJoyConfig8::Release method decreases the reference count of the DirectInputJoyConfig object by 1. This method is part of the IUnknown interface inherited by DirectInputJoyConfig. |
SendForceFeedbackCommand The IDirectInputEffectDriver::SendForceFeedbackCommand method changes the force-feedback state for the device. |
SendNotify The IDirectInputJoyConfig8::SendNotify method notifies device drivers and applications that changes to the device configuration have been made. |
SetConfig The IDirectInputJoyConfig8::SetConfig method creates or redefines configuration information about a joystick. |
SetCooperativeLevel The IDirectInputJoyConfig8::SetCooperativeLevel method establishes the cooperation level for the instance of the device. The only cooperative levels supported for the IDirectInputJoyConfig8 interface are DISCL_EXCLUSIVE and DISCL_BACKGROUND. |
SetGain The IDirectInputEffectDriver::SetGain method sets the overall device gain. |
SetTypeInfo The IDirectInputJoyConfig8::SetTypeInfo method creates a new joystick type or redefines information about an existing joystick type. |
SetUserValues The IDirectInputJoyConfig8::SetUserValues method sets the user settings for the joystick. |
StartEffect The IDirectInputEffectDriver::StartEffect method begins the playback of an effect. If the effect is already playing, it is restarted from the beginning. |
StopEffect The IDirectInputEffectDriver::StopEffect method halts the playback of an effect. |
Unacquire The IDirectInputJoyConfig8::Unacquire method unacquires "joystick configuration mode". |
Interfaces
IDirectInputEffectDriver These three methods allow additional interfaces to be added to the DirectInputEffectDriver object without affecting the functionality of the original interface. |
IDirectInputJoyConfig8 IDirectInputJoyConfig8 interface contains methods that allow hardware developers who are writing property sheets to write and read information to and from the registry. |
Structures
DIDEVICESTATE The DIDEVICESTATE structure returns information about the state of a force feedback device. |
DIDRIVERVERSIONS The DIDRIVERVERSIONS structure is used by the DirectInput effect driver to report version information back to DirectInput. |
DIEFFECTATTRIBUTES The DIEFFECTATTRIBUTES structure describes the information contained in the "Attributes" value of the registry key for each effect that is supported by a force-feedback device. |
DIEFFESCAPE The DIEFFESCAPE structure passes hardware-specific data directly to the device driver. |
DIFFDEVICEATTRIBUTES The DIFFDEVICEATTRIBUTES structure describes the information contained in the "Attributes" value of the OEMForceFeedback registry key. |
DIFFOBJECTATTRIBUTES The DIFFOBJECTATTRIBUTES structure describes the information contained in the "FFAttributes" value of the registry key for each "object" on a force-feedback device. |
DIHIDFFINITINFO The DIHIDFFINITINFO structure is used by DirectInput to provide information to a HID force-feedback driver about the device it is being asked to control. |
DIJOYCONFIG The DIJOYCONFIG structure contains information about a joystick's configuration. |
DIJOYTYPEINFO The DIJOYTYPEINFO structure contains information about a joystick type. |
DIJOYUSERVALUES The DIJOYUSERVALUES structure contains information about the user's joystick settings. |
DIOBJECTATTRIBUTES The DIOBJECTATTRIBUTES structure describes the information contained in the "Attributes" value of the registry key for each "object" on a device. If the "Attributes" value is absent, then default attributes are used. |
DIOBJECTCALIBRATION The DIOBJECTCALIBRATION structure describes the information contained in the "Calibration" value of the registry key for each axis on a device. |
JOYREGHWVALUES The JOYREGHWVALUES (mmddk.h) structure contains the range of values returned by the hardware (filled in by calibration). |
JOYREGHWVALUES The JOYREGHWVALUES (dinputd.h) structure contains the range of values returned by the hardware (filled in by calibration). |
KEYBOARD_ATTRIBUTES KEYBOARD_ATTRIBUTES specifies the attributes of a keyboard. |
KEYBOARD_EXTENDED_ATTRIBUTES KEYBOARD_EXTENDED_ATTRIBUTES specifies the extended attributes of a keyboard. |
KEYBOARD_INDICATOR_PARAMETERS KEYBOARD_INDICATOR_PARAMETERS specifies the state of a keyboard's indicator LEDs. |
KEYBOARD_INDICATOR_TRANSLATION KEYBOARD_INDICATOR_TRANSLATION specifies a device-specific, variable length array of mappings between keyboard scan codes and LED indicators. |
KEYBOARD_INPUT_DATA KEYBOARD_INPUT_DATA contains one packet of keyboard input data. |
KEYBOARD_TYPEMATIC_PARAMETERS KEYBOARD_TYPEMATIC_PARAMETERS specifies a keyboard's typematic settings. |
KEYBOARD_UNIT_ID_PARAMETER KEYBOARD_UNIT_ID_PARAMETER specifies the unit ID that Kbdclass assigns to a keyboard. |
MOUSE_ATTRIBUTES MOUSE_ATTRIBUTES specifies the attributes of a mouse device. |
MOUSE_INPUT_DATA MOUSE_INPUT_DATA contains one packet of mouse input data. |
MOUSE_UNIT_ID_PARAMETER MOUSE_UNIT_ID_PARAMETER specifies a unit ID that Mouclass assigns to a mouse. |