Platform SDK: DirectX

IDirectInputDevice7::GetDeviceState

The IDirectInputDevice7::GetDeviceState method retrieves immediate data from the device.

HRESULT GetDeviceState(
  DWORD cbData,  
  LPVOID lpvData 
);

Parameters

cbData
Size of the buffer in the lpvData parameter, in bytes.
lpvData
Address of a structure that receives the current state of the device. The format of the data is established by a prior call to the IDirectInputDevice7::SetDataFormat method.

Return Values

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_INPUTLOST
DIERR_INVALIDPARAM
DIERR_NOTACQUIRED
DIERR_NOTINITIALIZED
E_PENDING

Remarks

Before device data can be obtained, set the cooperative level by using the IDirectInputDevice7::SetCooperativeLevel method, then set the data format by using IDirectInputDevice7::SetDataFormat, and acquire the device by using the IDirectInputDevice7::Acquire method.

The five predefined data formats require corresponding device state structures according to the following table:

Data format State structure
c_dfDIMouse DIMOUSESTATE
c_dfDIMouse2 DIMOUSESTATE2
c_dfDIKeyboard array of 256 bytes
c_dfDIJoystick DIJOYSTATE
c_dfDIJoystick2 DIJOYSTATE2

For example, if you passed the c_dfDIMouse format to the IDirectInputDevice7::SetDataFormat method, you must pass a DIMOUSESTATE structure to the IDirectInputDevice7::GetDeviceState method.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in dinput.h.
  Import Library: Use dinput.lib.

See Also

IDirectInputDevice7::Poll, Polling and Events, Buffered and Immediate Data