Return Values
The list below contains the HRESULT values that can be returned by Microsoft® DirectInput® methods and functions. Errors are represented by negative values and cannot be combined.
For a list of the error values each method or function can return, see the individual descriptions. Lists of error codes in the documentation are necessarily incomplete. For example, any DirectInput method can return DIERR_OUTOFMEMORY even though the error code is not explicitly listed as a possible return value in the documentation for that method.
- DI_BUFFEROVERFLOW
- The device buffer overflowed and some input was lost. This value is equal to the S_FALSE standard COM return value.
- DI_DOWNLOADSKIPPED
- The parameters of the effect were successfully updated, but the effect could not be downloaded because the associated device was not acquired in exclusive mode.
- DI_EFFECTRESTARTED
- The effect was stopped, the parameters were updated, and the effect was restarted.
- DI_NOEFFECT
- The operation had no effect. This value is equal to the S_FALSE standard COM return value.
- DI_NOTATTACHED
- The device exists but is not currently . This value is equal to the S_FALSE standard COM return value.
- DI_OK
- The operation completed successfully. This value is equal to the S_OK standard COM return value.
- DI_POLLEDDEVICE
- The device is a polled device. As a result, device buffering does not collect any data and event notifications is not signaled until the IDirectInputDevice8::Poll method is called.
- DI_PROPNOEFFECT
- The change in device properties had no effect. This value is equal to the S_FALSE standard COM return value.
- DI_SETTINGSNOTSAVED
- The action map was applied to the device, but the settings could not be saved.
- DI_TRUNCATED
- The parameters of the effect were successfully updated, but some of them were beyond the capabilities of the device and were truncated to the nearest supported value.
- DI_TRUNCATEDANDRESTARTED
- Equal to DI_EFFECTRESTARTED | DI_TRUNCATED.
- DI_WRITEPROTECT
- A SUCCESS code indicating that settings cannot be modified.
- DIERR_ACQUIRED
- The operation cannot be performed while the device is acquired.
- DIERR_ALREADYINITIALIZED
- This object is already initialized
- DIERR_BADDRIVERVER
- The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.
- DIERR_BETADIRECTINPUTVERSION
- The application was written for an unsupported prerelease version of DirectInput.
- DIERR_DEVICEFULL
- The device is full.
- DIERR_DEVICENOTREG
- The device or device instance is not registered with DirectInput. This value is equal to the REGDB_E_CLASSNOTREG standard COM return value.
- DIERR_EFFECTPLAYING
- The parameters were updated in memory but were not downloaded to the device because the device does not support updating an effect while it is still playing.
- DIERR_GENERIC
- An undetermined error occurred inside the DirectInput subsystem. This value is equal to the E_FAIL standard COM return value.
- DIERR_HANDLEEXISTS
- The device already has an event notification associated with it. This value is equal to the E_ACCESSDENIED standard COM return value.
- DIERR_HASEFFECTS
- The device cannot be reinitialized because effects are attached to it.
- DIERR_INCOMPLETEEFFECT
- The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been supplied.
- DIERR_INPUTLOST
- Access to the input device has been lost. It must be reacquired.
- DIERR_INVALIDPARAM
- An invalid parameter was passed to the returning function, or the object was not in a state that permitted the function to be called. This value is equal to the E_INVALIDARG standard COM return value.
- DIERR_MAPFILEFAIL
- An error has occurred either reading the vendor-supplied action-mapping file for the device or reading or writing the user configuration mapping file for the device.
- DIERR_MOREDATA
- Not all the requested information fit into the buffer.
- DIERR_NOAGGREGATION
- This object does not support aggregation.
- DIERR_NOINTERFACE
- The object does not support the specified interface. This value is equal to the E_NOINTERFACE standard COM return value.
- DIERR_NOTACQUIRED
- The operation cannot be performed unless the device is acquired.
- DIERR_NOTBUFFERED
- The device is not buffered. Set the DIPROP_BUFFERSIZE property to enable buffering.
- DIERR_NOTDOWNLOADED
- The effect is not downloaded.
- DIERR_NOTEXCLUSIVEACQUIRED
- The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode.
- DIERR_NOTFOUND
- The requested object does not exist.
- DIERR_NOTINITIALIZED
- This object has not been initialized.
- DIERR_OBJECTNOTFOUND
- The requested object does not exist.
- DIERR_OLDDIRECTINPUTVERSION
- The application requires a newer version of DirectInput.
- DIERR_OTHERAPPHASPRIO
- Another application has a higher priority level, preventing this call from succeeding. This value is equal to the E_ACCESSDENIED standard COM return value. This error can be returned when an application has only foreground access to a device but is attempting to acquire the device while in the background.
- DIERR_OUTOFMEMORY
- The DirectInput subsystem could not allocate sufficient memory to complete the call. This value is equal to the E_OUTOFMEMORY standard COM return value.
- DIERR_READONLY
- The specified property cannot be changed. This value is equal to the E_ACCESSDENIED standard COM return value.
- DIERR_REPORTFULL
- More information was requested to be sent than can be sent to the device.
- DIERR_UNPLUGGED
- The operation could not be completed because the device is not plugged in.
- DIERR_UNSUPPORTED
- The function called is not supported at this time. This value is equal to the E_NOTIMPL standard COM return value.
- E_HANDLE
- The HWND parameter is not a valid top-level window that belongs to the process.
- E_PENDING
- Data is not yet available.
- E_POINTER
- An invalid pointer, usually NULL, was passed as a parameter.