IDirectInputDevice8::GetDeviceState Method
Retrieves immediate data from the device.
Syntax
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 IDirectInputDevice8::SetDataFormat method.
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_INPUTLOST, DIERR_INVALIDPARAM, DIERR_NOTACQUIRED, DIERR_NOTINITIALIZED, E_PENDING.
Remarks
Before device data can be obtained, set the cooperative level by using the IDirectInputDevice8::SetCooperativeLevel method, then set the data format by using IDirectInputDevice8::SetDataFormat, and acquire the device by using the IDirectInputDevice8 Interface 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 IDirectInputDevice8::SetDataFormat method, you must pass a DIMOUSESTATE structure to the IDirectInputDevice8::GetDeviceState method.
Requirements
Header: Declared in dinput.h.
See Also
IDirectInputDevice8::Poll
Polling and Event Notification
Buffered and Immediate Data