/***************************************************************************** * * DILib1.c * * Copyright (c) 1996 Microsoft Corporation. All Rights Reserved. * * Abstract: * * Objects exported statically into our library. * * Contents: * * c_dfDIKeyboard * *****************************************************************************/ #include "dinputpr.h" /***************************************************************************** * * @doc INTERNAL * * @global DIOBJECTDATAFORMAT | c_rgdoiDIKbd[] | * * Device object data formats for keyboard-style access. * * @doc EXTERNAL * * @global DIDATAFORMAT | c_dfDIKeyboard | * * A predefined structure which describes a * keyboard device. This object is provided in the * DINPUT.LIB library file as a convenience. * * A pointer to this structure may be passed to * to indicate that * the device will be accessed in the form of a keyboard. * * When a device has been set to the keyboard data format, * the function * behaves in the same way as the Windows * function: The device state is stored in an array of * 256 bytes, with each byte corresponding to the state * of a key. For example, if high bit of the 'th * byte is set, then the Enter key is being held down. * * When a device has been set to the keyboard data format, * the function * returns a whose

* field is a value which describes the * key which was pressed or released. * *****************************************************************************/ #pragma BEGIN_CONST_DATA #define MAKEODF(b) \ { &GUID_Key, b, \ DIDFT_BUTTON | DIDFT_MAKEINSTANCE(b) | 0x80000000, } \ #define MAKEODF16(b) \ MAKEODF(b+0x00), \ MAKEODF(b+0x01), \ MAKEODF(b+0x02), \ MAKEODF(b+0x03), \ MAKEODF(b+0x04), \ MAKEODF(b+0x05), \ MAKEODF(b+0x06), \ MAKEODF(b+0x07), \ MAKEODF(b+0x08), \ MAKEODF(b+0x09), \ MAKEODF(b+0x0A), \ MAKEODF(b+0x0B), \ MAKEODF(b+0x0C), \ MAKEODF(b+0x0D), \ MAKEODF(b+0x0E), \ MAKEODF(b+0x0F) \ static DIOBJECTDATAFORMAT c_rgodfDIKeyboard[] = { MAKEODF16(0x00), MAKEODF16(0x10), MAKEODF16(0x20), MAKEODF16(0x30), MAKEODF16(0x40), MAKEODF16(0x50), MAKEODF16(0x60), MAKEODF16(0x70), MAKEODF16(0x80), MAKEODF16(0x90), MAKEODF16(0xA0), MAKEODF16(0xB0), MAKEODF16(0xC0), MAKEODF16(0xD0), MAKEODF16(0xE0), MAKEODF16(0xF0), }; const DIDATAFORMAT c_dfDIKeyboard = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), DIDF_RELAXIS, 256, cA(c_rgodfDIKeyboard), c_rgodfDIKeyboard, }; #pragma END_CONST_DATA