Library tutorials & articles

Direct Input 8

Overview

This article explains how to implement direct input. Direct Input is used to determine the keyboard, mouse, and joystick device states. Direct Input associates an id with the keyboard, mouse, and joystick device. Using the device id, properties are set to tell direct input how to return device status data. A timer event is call twelve time a second to display information queried from the device to the application. The device information is return in direct input data structures. The device status is either immediate or buffered. If the device is buffered the device property is changed to allow buffering.

Further in the article the different device modes are explained: immediate, buffered, background, foreground, and windowskeys.

The dinput.h has the scan code enumerated constants

So

hr = g_pKeyboard->GetDeviceData( sizeof(DIDEVICEOBJECTDATA), didod, &dwElements, 0 );

returns an array of 256 keyboard scan code states

Using the scan code constants

didod[ DIK_1 ].dwData & 0x80

returns either a 0 or 1

didod[ i ].dwOfs

returns the actual scan code

AddThis

Comments

Leave a comment

Sign in or Join us (it's free).

Related discussion

Events coming up

  • Dec 6

    Developing AJAX Web Applications with Castle Monorail

    London, United Kingdom

    Monorail is the model-view-controller engine of the Castle Project, bringing many of the best ideas of Ruby on Rails to the .NET world. In this talk, David De Florinier and Gojko Adzic show how Monorail makes it easy to develop .NET based AJAX applications, and how to use the Castle Project to build Web 2.0 applications effectively. Come to this session if you are a .NET web developer. Everyone is welcome!