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.