Share via

IDirectInputDevice8::SetDataFormat Method

Sets the data format for the DirectInput device.


HRESULT SetDataFormat(


  • lpdf
    Address of a structure that describes the format of the data that the DirectInputDevice should return. An application can define its own DIDATAFORMAT structure or use one of the following predefined global variables:
    • c_dfDIKeyboard

    • c_dfDIMouse

    • c_dfDIMouse2

    • c_dfDIJoystick

    • c_dfDIJoystick2

Return Value

If the method succeeds, the return value is DI_OK. If the method fails, the return value can be one of the following error values: DIERR_ACQUIRED, DIERR_INVALIDPARAM, DIERR_NOTINITIALIZED.


The data format must be set before the device can be acquired by using the IDirectInputDevice8 Interface method. It is necessary to set the data format only once. The data format cannot be changed while the device is acquired.

If the application is using action mapping, the data format is set instead by the call to IDirectInputDevice8::SetActionMap.


Header: Declared in dinput.h.

See Also