{******************************************************************************} {* *} {* Copyright (C) Microsoft Corporation. All Rights Reserved. *} {* *} {* Files: dinput.h *} {* Content: DirectInput include file *} {* *} {* DirectX 9.0 Delphi / FreePascal adaptation by Alexey Barkovoy *} {* E-Mail: directx@clootie.ru *} {* *} {* Modified: 30-Nov-2004 *} {* *} {* Compatible with : *} {* DirectX 7.0 Object Pascal adaptation by *} {* Erik Unger, e-Mail: DelphiDirectX@next-reality.com *} {* *} {* Latest version can be downloaded from: *} {* http://clootie.ru *} {* http://sourceforge.net/projects/delphi-dx9sdk *} {* *} {******************************************************************************} { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {******************************************************************************} // Original source contained in "DirectInput.par" /////////////////////////////////////////////////////////////////////////////// // Notes: //---------------------------------------------------------------------------- // Possible input defines for this file, mapped to original C values: // DIRECTINPUT_VERSION_8 : DIRECTINPUT_VERSION = 0x0800, // DIRECTINPUT_VERSION_7 : DIRECTINPUT_VERSION = 0x0700, // DIRECTINPUT_VERSION_6 : DIRECTINPUT_VERSION = 0x0600, // DIRECTINPUT_VERSION_5b : DIRECTINPUT_VERSION = 0x05b2, // - in this translation we don't support DirectInput 5.0a (0x050a) version // - just straight 5.0b (0x05b2) one. // DIRECTINPUT_VERSION_5 : DIRECTINPUT_VERSION = 0x0500, // DIRECTINPUT_VERSION_3 : DIRECTINPUT_VERSION = 0x0300, // // By default DIRECTINPUT_VERSION_8 (DIRECTINPUT_VERSION = 0x0800) is assumed // // Also you can use generic DIRECTXx defines, so: // DIRECTX9 equal to DIRECTINPUT_VERSION_8; // DIRECTX8 equal to DIRECTINPUT_VERSION_8; // DIRECTX7 equal to DIRECTINPUT_VERSION_7; // DIRECTX6 equal to DIRECTINPUT_VERSION_6; // DIRECTX5 equal to DIRECTINPUT_VERSION_5; // DIRECTX3 equal to DIRECTINPUT_VERSION_3 /////////////////////////////////////////////////////////////////////////////// {$I DirectX.inc} unit DirectInput; interface uses Windows, MMSystem, DXTypes; //////////////////////////////////////////////////////////////////////// // Global level dynamic loading support {$IFDEF DYNAMIC_LINK_ALL} {$DEFINE DIRECTINPUT_DYNAMIC_LINK} {$ENDIF} {$IFDEF DYNAMIC_LINK_EXPLICIT_ALL} {$DEFINE DIRECTINPUT_DYNAMIC_LINK_EXPLICIT} {$ENDIF} // Remove "dots" below to force some kind of dynamic linking {.$DEFINE DIRECTINPUT_DYNAMIC_LINK} {.$DEFINE DIRECTINPUT_DYNAMIC_LINK_EXPLICIT} //////////////////////////////////////////////////////////////////////// // Assume for what DirectInput version we will compile headers {$IFDEF DIRECTX9} {$DEFINE DIRECTINPUT_VERSION_8} {$ENDIF} {$IFDEF DIRECTX8} {$DEFINE DIRECTINPUT_VERSION_8} {$ENDIF} {$IFDEF DIRECTX7} {$DEFINE DIRECTINPUT_VERSION_7} {$ENDIF} {$IFDEF DIRECTX6} {$DEFINE DIRECTINPUT_VERSION_6} {$ENDIF} {$IFDEF DIRECTX5} {$DEFINE DIRECTINPUT_VERSION_5} {$ENDIF} {$IFDEF DIRECTX3} {$DEFINE DIRECTINPUT_VERSION_3} {$ENDIF} {$IFNDEF DIRECTINPUT_VERSION_8} {$IFNDEF DIRECTINPUT_VERSION_7} {$IFNDEF DIRECTINPUT_VERSION_5b} {$IFNDEF DIRECTINPUT_VERSION_5} {$IFNDEF DIRECTINPUT_VERSION_3} // Compiling for DirectInput8 by default {$DEFINE DIRECTINPUT_VERSION_8} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} //////////////////////////////////////////////////////////////////////// // Define DirectInputVerrsion constant const {$IFDEF DIRECTINPUT_VERSION_8} DIRECTINPUT_VERSION = $0800; {$ELSE}{$IFDEF DIRECTINPUT_VERSION_7} DIRECTINPUT_VERSION = $0700; {$ELSE}{$IFDEF DIRECTINPUT_VERSION_6} DIRECTINPUT_VERSION = $0600; {$ELSE}{$IFDEF DIRECTINPUT_VERSION_5b} DIRECTINPUT_VERSION = $05b2; {$ELSE}{$IFDEF DIRECTINPUT_VERSION_5} DIRECTINPUT_VERSION = $0500; {$ELSE}{$IFDEF DIRECTINPUT_VERSION_3} DIRECTINPUT_VERSION = $0300; {$ENDIF}{$ENDIF}{$ENDIF}{$ENDIF}{$ENDIF}{$ENDIF} {$EXTERNALSYM DIRECTINPUT_VERSION} //////////////////////////////////////////////////////////////////////// // Emit conditionals to C++Builder compiler {$IFDEF DIRECTINPUT_VERSION_3} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x0300'} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_5} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x0500'} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_5b} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x05b2'} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_6} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x0600'} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_7} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x0700'} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_8} {$HPPEMIT '#define DIRECTINPUT_VERSION 0x0800'} {$ENDIF} (*$HPPEMIT '#include "dinput.h"' *) (*$HPPEMIT '' *) //////////////////////////////////////////////////////////////////////// // Define symbols for '<=' comparision {$IFDEF DIRECTINPUT_VERSION_8} {$DEFINE DIRECTINPUT_VERSION_7} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_7} {$DEFINE DIRECTINPUT_VERSION_6} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_6} {$DEFINE DIRECTINPUT_VERSION_5b} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_5b} {$DEFINE DIRECTINPUT_VERSION_5} {$ENDIF} {$IFDEF DIRECTINPUT_VERSION_5} {$DEFINE DIRECTINPUT_VERSION_3} {$ENDIF} (**************************************************************************** * * Copyright (C) 1996-2000 Microsoft Corporation. All Rights Reserved. * * File: dinput.h * Content: DirectInput include file * ****************************************************************************) {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputEffect);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDeviceA);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDeviceW);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputA);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputW);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput2A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput2W);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput7A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput7W);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput8A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInput8W);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDeviceA);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDeviceW);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice2A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice2W);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice7A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice7W);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice8A);'} {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectInputDevice8W);'} {$HPPEMIT '#ifdef UNICODE'} {$HPPEMIT 'typedef _di_IDirectInputW _di_IDirectInput;'} {$HPPEMIT 'typedef _di_IDirectInput2W _di_IDirectInput2;'} {$HPPEMIT 'typedef _di_IDirectInput7W _di_IDirectInput7;'} {$HPPEMIT 'typedef _di_IDirectInput8W _di_IDirectInput8;'} {$HPPEMIT 'typedef _di_IDirectInputDeviceW _di_IDirectInputDevice;'} {$HPPEMIT 'typedef _di_IDirectInputDevice2W _di_IDirectInputDevice2;'} {$HPPEMIT 'typedef _di_IDirectInputDevice7W _di_IDirectInputDevice7;'} {$HPPEMIT 'typedef _di_IDirectInputDevice8W _di_IDirectInputDevice8;'} {$HPPEMIT '#else'} {$HPPEMIT 'typedef _di_IDirectInputA _di_IDirectInput;'} {$HPPEMIT 'typedef _di_IDirectInput2A _di_IDirectInput2;'} {$HPPEMIT 'typedef _di_IDirectInput7A _di_IDirectInput7;'} {$HPPEMIT 'typedef _di_IDirectInput8A _di_IDirectInput8;'} {$HPPEMIT 'typedef _di_IDirectInputDeviceA _di_IDirectInputDevice;'} {$HPPEMIT 'typedef _di_IDirectInputDevice2A _di_IDirectInputDevice2;'} {$HPPEMIT 'typedef _di_IDirectInputDevice7A _di_IDirectInputDevice7;'} {$HPPEMIT 'typedef _di_IDirectInputDevice8A _di_IDirectInputDevice8;'} {$HPPEMIT '#endif'} (**************************************************************************** * * Class IDs * ****************************************************************************) const CLSID_DirectInput : TGUID = '{25E609E0-B259-11CF-BFC7-444553540000}'; {$EXTERNALSYM CLSID_DirectInput} CLSID_DirectInputDevice : TGUID = '{25E609E1-B259-11CF-BFC7-444553540000}'; {$EXTERNALSYM CLSID_DirectInputDevice} CLSID_DirectInput8 : TGUID = '{25E609E4-B259-11CF-BFC7-444553540000}'; {$EXTERNALSYM CLSID_DirectInput8} CLSID_DirectInputDevice8 : TGUID = '{25E609E5-B259-11CF-BFC7-444553540000}'; {$EXTERNALSYM CLSID_DirectInputDevice8} (**************************************************************************** * * Interfaces * ****************************************************************************) const IID_IDirectInputA : TGUID = '{89521360-AA8A-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputA} IID_IDirectInputW : TGUID = '{89521361-AA8A-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputW} IID_IDirectInput2A : TGUID = '{5944E662-AA8A-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInput2A} IID_IDirectInput2W : TGUID = '{5944E663-AA8A-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInput2W} IID_IDirectInput7A : TGUID = '{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'; {$EXTERNALSYM IID_IDirectInput7A} IID_IDirectInput7W : TGUID = '{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'; {$EXTERNALSYM IID_IDirectInput7W} IID_IDirectInput8A : TGUID = '{BF798030-483A-4DA2-AA99-5D64ED369700}'; {$EXTERNALSYM IID_IDirectInput8A} IID_IDirectInput8W : TGUID = '{BF798031-483A-4DA2-AA99-5D64ED369700}'; {$EXTERNALSYM IID_IDirectInput8W} IID_IDirectInputDeviceA : TGUID = '{5944E680-C92E-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputDeviceA} IID_IDirectInputDeviceW : TGUID = '{5944E681-C92E-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputDeviceW} IID_IDirectInputDevice2A : TGUID = '{5944E682-C92E-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputDevice2A} IID_IDirectInputDevice2W : TGUID = '{5944E683-C92E-11CF-BFC7-444553540000}'; {$EXTERNALSYM IID_IDirectInputDevice2W} IID_IDirectInputDevice7A : TGUID = '{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'; {$EXTERNALSYM IID_IDirectInputDevice7A} IID_IDirectInputDevice7W : TGUID = '{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'; {$EXTERNALSYM IID_IDirectInputDevice7W} IID_IDirectInputDevice8A : TGUID = '{54D41080-DC15-4833-A41B-748F73A38179}'; {$EXTERNALSYM IID_IDirectInputDevice8A} IID_IDirectInputDevice8W : TGUID = '{54D41081-DC15-4833-A41B-748F73A38179}'; {$EXTERNALSYM IID_IDirectInputDevice8W} IID_IDirectInputEffect : TGUID = '{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM IID_IDirectInputEffect} // String constants for Interface IDs SID_IDirectInputA = '{89521360-AA8A-11CF-BFC7-444553540000}'; SID_IDirectInputW = '{89521361-AA8A-11CF-BFC7-444553540000}'; SID_IDirectInput2A = '{5944E662-AA8A-11CF-BFC7-444553540000}'; SID_IDirectInput2W = '{5944E663-AA8A-11CF-BFC7-444553540000}'; SID_IDirectInput7A = '{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'; SID_IDirectInput7W = '{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'; SID_IDirectInput8A = '{BF798030-483A-4DA2-AA99-5D64ED369700}'; SID_IDirectInput8W = '{BF798031-483A-4DA2-AA99-5D64ED369700}'; SID_IDirectInputDeviceA = '{5944E680-C92E-11CF-BFC7-444553540000}'; SID_IDirectInputDeviceW = '{5944E681-C92E-11CF-BFC7-444553540000}'; SID_IDirectInputDevice2A = '{5944E682-C92E-11CF-BFC7-444553540000}'; SID_IDirectInputDevice2W = '{5944E683-C92E-11CF-BFC7-444553540000}'; SID_IDirectInputDevice7A = '{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'; SID_IDirectInputDevice7W = '{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'; SID_IDirectInputDevice8A = '{54D41080-DC15-4833-A41B-748F73A38179}'; SID_IDirectInputDevice8W = '{54D41081-DC15-4833-A41B-748F73A38179}'; SID_IDirectInputEffect = '{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'; (**************************************************************************** * * Predefined object types * ****************************************************************************) const GUID_XAxis : TGUID = '{A36D02E0-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_XAxis} GUID_YAxis : TGUID = '{A36D02E1-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_YAxis} GUID_ZAxis : TGUID = '{A36D02E2-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_ZAxis} GUID_RxAxis : TGUID = '{A36D02F4-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_RxAxis} GUID_RyAxis : TGUID = '{A36D02F5-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_RyAxis} GUID_RzAxis : TGUID = '{A36D02E3-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_RzAxis} GUID_Slider : TGUID = '{A36D02E4-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_Slider} GUID_Button : TGUID = '{A36D02F0-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_Button} GUID_Key : TGUID = '{55728220-D33C-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_Key} GUID_POV : TGUID = '{A36D02F2-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_POV} GUID_Unknown : TGUID = '{A36D02F3-C9F3-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_Unknown} (**************************************************************************** * * Predefined product GUIDs * ****************************************************************************) const GUID_SysMouse : TGUID = '{6F1D2B60-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysMouse} GUID_SysKeyboard : TGUID = '{6F1D2B61-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysKeyboard} GUID_Joystick : TGUID = '{6F1D2B70-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_Joystick} GUID_SysMouseEm : TGUID = '{6F1D2B80-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysMouseEm} GUID_SysMouseEm2 : TGUID = '{6F1D2B81-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysMouseEm2} GUID_SysKeyboardEm : TGUID = '{6F1D2B82-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysKeyboardEm} GUID_SysKeyboardEm2 : TGUID = '{6F1D2B83-D5A0-11CF-BFC7-444553540000}'; {$EXTERNALSYM GUID_SysKeyboardEm2} (**************************************************************************** * * Predefined force feedback effects * ****************************************************************************) const GUID_ConstantForce : TGUID = '{13541C20-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_ConstantForce} GUID_RampForce : TGUID = '{13541C21-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_RampForce} GUID_Square : TGUID = '{13541C22-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Square} GUID_Sine : TGUID = '{13541C23-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Sine} GUID_Triangle : TGUID = '{13541C24-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Triangle} GUID_SawtoothUp : TGUID = '{13541C25-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_SawtoothUp} GUID_SawtoothDown : TGUID = '{13541C26-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_SawtoothDown} GUID_Spring : TGUID = '{13541C27-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Spring} GUID_Damper : TGUID = '{13541C28-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Damper} GUID_Inertia : TGUID = '{13541C29-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Inertia} GUID_Friction : TGUID = '{13541C2A-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_Friction} GUID_CustomForce : TGUID = '{13541C2B-8E33-11D0-9AD0-00A0C9A06E35}'; {$EXTERNALSYM GUID_CustomForce} (**************************************************************************** * * Interfaces and Structures... * ****************************************************************************) {$IFDEF DIRECTINPUT_VERSION_5} (**************************************************************************** * * IDirectInputEffect * ****************************************************************************) const DIEFT_ALL = $00000000; {$EXTERNALSYM DIEFT_ALL} DIEFT_CONSTANTFORCE = $00000001; {$EXTERNALSYM DIEFT_CONSTANTFORCE} DIEFT_RAMPFORCE = $00000002; {$EXTERNALSYM DIEFT_RAMPFORCE} DIEFT_PERIODIC = $00000003; {$EXTERNALSYM DIEFT_PERIODIC} DIEFT_CONDITION = $00000004; {$EXTERNALSYM DIEFT_CONDITION} DIEFT_CUSTOMFORCE = $00000005; {$EXTERNALSYM DIEFT_CUSTOMFORCE} DIEFT_HARDWARE = $000000FF; {$EXTERNALSYM DIEFT_HARDWARE} DIEFT_FFATTACK = $00000200; {$EXTERNALSYM DIEFT_FFATTACK} DIEFT_FFFADE = $00000400; {$EXTERNALSYM DIEFT_FFFADE} DIEFT_SATURATION = $00000800; {$EXTERNALSYM DIEFT_SATURATION} DIEFT_POSNEGCOEFFICIENTS = $00001000; {$EXTERNALSYM DIEFT_POSNEGCOEFFICIENTS} DIEFT_POSNEGSATURATION = $00002000; {$EXTERNALSYM DIEFT_POSNEGSATURATION} DIEFT_DEADBAND = $00004000; {$EXTERNALSYM DIEFT_DEADBAND} DIEFT_STARTDELAY = $00008000; {$EXTERNALSYM DIEFT_STARTDELAY} //#define DIEFT_GETTYPE(n) LOBYTE(n) function DIEFT_GETTYPE(n: Cardinal): Byte; {$EXTERNALSYM DIEFT_GETTYPE} const DI_DEGREES = 100; {$EXTERNALSYM DI_DEGREES} DI_FFNOMINALMAX = 10000; {$EXTERNALSYM DI_FFNOMINALMAX} DI_SECONDS = 1000000; {$EXTERNALSYM DI_SECONDS} type PDIConstantForce = ^TDIConstantForce; DICONSTANTFORCE = packed record lMagnitude: Longint; end; {$EXTERNALSYM DICONSTANTFORCE} TDIConstantForce = DICONSTANTFORCE; PDIRampForce = ^TDIRampForce; DIRAMPFORCE = packed record lStart: Longint; lEnd: Longint; end; {$EXTERNALSYM DIRAMPFORCE} TDIRampForce = DIRAMPFORCE; PDIPeriodic = ^TDIPeriodic; DIPERIODIC = packed record dwMagnitude: DWORD; lOffset: Longint; dwPhase: DWORD; dwPeriod: DWORD; end; {$EXTERNALSYM DIPERIODIC} TDIPeriodic = DIPERIODIC; PDICondition = ^TDICondition; DICONDITION = packed record lOffset: Longint; lPositiveCoefficient: Longint; lNegativeCoefficient: Longint; dwPositiveSaturation: DWORD; dwNegativeSaturation: DWORD; lDeadBand: Longint; end; {$EXTERNALSYM DICONDITION} TDICondition = DICONDITION; PDICustomForce = ^TDICustomForce; DICUSTOMFORCE = packed record cChannels: DWORD; dwSamplePeriod: DWORD; cSamples: DWORD; rglForceData: PLongint; end; {$EXTERNALSYM DICUSTOMFORCE} TDICustomForce = DICUSTOMFORCE; PDIEnvelope = ^TDIEnvelope; DIENVELOPE = packed record dwSize: DWORD; (* sizeof(DIENVELOPE) *) dwAttackLevel: DWORD; dwAttackTime: DWORD; (* Microseconds *) dwFadeLevel: DWORD; dwFadeTime: DWORD; (* Microseconds *) end; {$EXTERNALSYM DIENVELOPE} TDIEnvelope = DIENVELOPE; (* This structure is defined for DirectX 5.0 compatibility *) PDIEffectDX5 = ^TDIEffectDX5; DIEFFECT_DX5 = packed record dwSize: DWORD; (* sizeof(DIEFFECT_DX5) *) dwFlags: DWORD; (* DIEFF_* *) dwDuration: DWORD; (* Microseconds *) dwSamplePeriod: DWORD; (* Microseconds *) dwGain: DWORD; dwTriggerButton: DWORD; (* or DIEB_NOTRIGGER *) dwTriggerRepeatInterval: DWORD; (* Microseconds *) cAxes: DWORD; (* Number of axes *) rgdwAxes: PDWORD; (* Array of axes *) rglDirection: PLongint; (* Array of directions *) lpEnvelope: PDIEnvelope; (* Optional *) cbTypeSpecificParams: DWORD; (* Size of params *) lpvTypeSpecificParams: Pointer; (* Pointer to params *) end; {$EXTERNALSYM DIEFFECT_DX5} TDIEffectDX5 = DIEFFECT_DX5; PDIEffect = ^TDIEffect; DIEFFECT = packed record dwSize: DWORD; (* sizeof(DIEFFECT) *) dwFlags: DWORD; (* DIEFF_* *) dwDuration: DWORD; (* Microseconds *) dwSamplePeriod: DWORD; (* Microseconds *) dwGain: DWORD; dwTriggerButton: DWORD; (* or DIEB_NOTRIGGER *) dwTriggerRepeatInterval: DWORD; (* Microseconds *) cAxes: DWORD; (* Number of axes *) rgdwAxes: PDWORD; (* Array of axes *) rglDirection: PLongint; (* Array of directions *) lpEnvelope: PDIEnvelope; (* Optional *) cbTypeSpecificParams: DWORD; (* Size of params *) lpvTypeSpecificParams: Pointer; (* Pointer to params *) {$IFDEF DIRECTINPUT_VERSION_6} dwStartDelay: DWORD; (* Microseconds *) {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0600 *) end; {$EXTERNALSYM DIEFFECT} TDIEffect = DIEFFECT; DIEFFECT_DX6 = DIEFFECT; {$EXTERNALSYM DIEFFECT_DX6} TDIEffectDX6 = DIEFFECT_DX6; PDIEffectDX6 = ^TDIEffectDX6; {$IFDEF DIRECTINPUT_VERSION_7} PDIFileEffect = ^TDIFileEffect; DIFILEEFFECT = packed record dwSize: DWORD; GuidEffect: TGUID; lpDiEffect: PDIEffect; szFriendlyName: array [0..MAX_PATH-1] of Char; end; {$EXTERNALSYM DIFILEEFFECT} TDIFileEffect = DIFILEEFFECT; TDIEnumEffectsInFileCallback = function (const Effect: TDIFileEffect; Data: Pointer): BOOL; stdcall; {$NODEFINE TDIEnumEffectsInFileCallback} {$HPPEMIT 'typedef LPDIENUMEFFECTSINFILECALLBACK TDIEnumEffectsInFileCallback;'} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) const DIEFF_OBJECTIDS = $00000001; {$EXTERNALSYM DIEFF_OBJECTIDS} DIEFF_OBJECTOFFSETS = $00000002; {$EXTERNALSYM DIEFF_OBJECTOFFSETS} DIEFF_CARTESIAN = $00000010; {$EXTERNALSYM DIEFF_CARTESIAN} DIEFF_POLAR = $00000020; {$EXTERNALSYM DIEFF_POLAR} DIEFF_SPHERICAL = $00000040; {$EXTERNALSYM DIEFF_SPHERICAL} DIEP_DURATION = $00000001; {$EXTERNALSYM DIEP_DURATION} DIEP_SAMPLEPERIOD = $00000002; {$EXTERNALSYM DIEP_SAMPLEPERIOD} DIEP_GAIN = $00000004; {$EXTERNALSYM DIEP_GAIN} DIEP_TRIGGERBUTTON = $00000008; {$EXTERNALSYM DIEP_TRIGGERBUTTON} DIEP_TRIGGERREPEATINTERVAL = $00000010; {$EXTERNALSYM DIEP_TRIGGERREPEATINTERVAL} DIEP_AXES = $00000020; {$EXTERNALSYM DIEP_AXES} DIEP_DIRECTION = $00000040; {$EXTERNALSYM DIEP_DIRECTION} DIEP_ENVELOPE = $00000080; {$EXTERNALSYM DIEP_ENVELOPE} DIEP_TYPESPECIFICPARAMS = $00000100; {$EXTERNALSYM DIEP_TYPESPECIFICPARAMS} {$IFDEF DIRECTINPUT_VERSION_6} DIEP_STARTDELAY = $00000200; {$EXTERNALSYM DIEP_STARTDELAY} DIEP_ALLPARAMS_DX5 = $000001FF; {$EXTERNALSYM DIEP_ALLPARAMS_DX5} DIEP_ALLPARAMS = $000003FF; {$EXTERNALSYM DIEP_ALLPARAMS} {$ELSE} (* DIRECTINPUT_VERSION < 0x0600 *) DIEP_ALLPARAMS = $000001FF; {$EXTERNALSYM DIEP_ALLPARAMS} {$ENDIF} (* DIRECTINPUT_VERSION ? 0x0600 *) DIEP_START = $20000000; {$EXTERNALSYM DIEP_START} DIEP_NORESTART = $40000000; {$EXTERNALSYM DIEP_NORESTART} DIEP_NODOWNLOAD = $80000000; {$EXTERNALSYM DIEP_NODOWNLOAD} DIEB_NOTRIGGER = $FFFFFFFF; {$EXTERNALSYM DIEB_NOTRIGGER} DIES_SOLO = $00000001; {$EXTERNALSYM DIES_SOLO} DIES_NODOWNLOAD = $80000000; {$EXTERNALSYM DIES_NODOWNLOAD} DIEGES_PLAYING = $00000001; {$EXTERNALSYM DIEGES_PLAYING} DIEGES_EMULATED = $00000002; {$EXTERNALSYM DIEGES_EMULATED} type PDIEffEscape = ^TDIEffEscape; DIEFFESCAPE = packed record dwSize: DWORD; dwCommand: DWORD; lpvInBuffer: Pointer; cbInBuffer: DWORD; lpvOutBuffer: Pointer; cbOutBuffer: DWORD; end; {$EXTERNALSYM DIEFFESCAPE} TDIEffEscape = DIEFFESCAPE; type {$EXTERNALSYM IDirectInputEffect} IDirectInputEffect = interface(IUnknown) [SID_IDirectInputEffect] (*** IDirectInputEffect methods ***) function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; function GetEffectGuid(out pguid: TGUID): HResult; stdcall; function GetParameters(var peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; function SetParameters(const peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; function Start(dwIterations, dwFlags: DWORD): HResult; stdcall; function Stop: HResult; stdcall; function GetEffectStatus(out pdwFlags: DWORD): HResult; stdcall; function Download: HResult; stdcall; function Unload: HResult; stdcall; function Escape(var pesc: PDIEffEscape): HResult; stdcall; end; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) (**************************************************************************** * * IDirectInputDevice * ****************************************************************************) const {$IFNDEF DIRECTINPUT_VERSION_8} (* #if DIRECTINPUT_VERSION <= 0x700 *) DIDEVTYPE_DEVICE = 1; {$EXTERNALSYM DIDEVTYPE_DEVICE} DIDEVTYPE_MOUSE = 2; {$EXTERNALSYM DIDEVTYPE_MOUSE} DIDEVTYPE_KEYBOARD = 3; {$EXTERNALSYM DIDEVTYPE_KEYBOARD} DIDEVTYPE_JOYSTICK = 4; {$EXTERNALSYM DIDEVTYPE_JOYSTICK} {$ELSE} DI8DEVCLASS_ALL = 0; {$EXTERNALSYM DI8DEVCLASS_ALL} DI8DEVCLASS_DEVICE = 1; {$EXTERNALSYM DI8DEVCLASS_DEVICE} DI8DEVCLASS_POINTER = 2; {$EXTERNALSYM DI8DEVCLASS_POINTER} DI8DEVCLASS_KEYBOARD = 3; {$EXTERNALSYM DI8DEVCLASS_KEYBOARD} DI8DEVCLASS_GAMECTRL = 4; {$EXTERNALSYM DI8DEVCLASS_GAMECTRL} DI8DEVTYPE_DEVICE = $11; {$EXTERNALSYM DI8DEVTYPE_DEVICE} DI8DEVTYPE_MOUSE = $12; {$EXTERNALSYM DI8DEVTYPE_MOUSE} DI8DEVTYPE_KEYBOARD = $13; {$EXTERNALSYM DI8DEVTYPE_KEYBOARD} DI8DEVTYPE_JOYSTICK = $14; {$EXTERNALSYM DI8DEVTYPE_JOYSTICK} DI8DEVTYPE_GAMEPAD = $15; {$EXTERNALSYM DI8DEVTYPE_GAMEPAD} DI8DEVTYPE_DRIVING = $16; {$EXTERNALSYM DI8DEVTYPE_DRIVING} DI8DEVTYPE_FLIGHT = $17; {$EXTERNALSYM DI8DEVTYPE_FLIGHT} DI8DEVTYPE_1STPERSON = $18; {$EXTERNALSYM DI8DEVTYPE_1STPERSON} DI8DEVTYPE_DEVICECTRL = $19; {$EXTERNALSYM DI8DEVTYPE_DEVICECTRL} DI8DEVTYPE_SCREENPOINTER = $1A; {$EXTERNALSYM DI8DEVTYPE_SCREENPOINTER} DI8DEVTYPE_REMOTE = $1B; {$EXTERNALSYM DI8DEVTYPE_REMOTE} DI8DEVTYPE_SUPPLEMENTAL = $1C; {$EXTERNALSYM DI8DEVTYPE_SUPPLEMENTAL} {$ENDIF} (* DIRECTINPUT_VERSION <= 0x700 *) DIDEVTYPE_HID = $00010000; {$EXTERNALSYM DIDEVTYPE_HID} {$IFNDEF DIRECTINPUT_VERSION_8} (* #if DIRECTINPUT_VERSION <= 0x700 *) DIDEVTYPEMOUSE_UNKNOWN = 1; {$EXTERNALSYM DIDEVTYPEMOUSE_UNKNOWN} DIDEVTYPEMOUSE_TRADITIONAL = 2; {$EXTERNALSYM DIDEVTYPEMOUSE_TRADITIONAL} DIDEVTYPEMOUSE_FINGERSTICK = 3; {$EXTERNALSYM DIDEVTYPEMOUSE_FINGERSTICK} DIDEVTYPEMOUSE_TOUCHPAD = 4; {$EXTERNALSYM DIDEVTYPEMOUSE_TOUCHPAD} DIDEVTYPEMOUSE_TRACKBALL = 5; {$EXTERNALSYM DIDEVTYPEMOUSE_TRACKBALL} DIDEVTYPEKEYBOARD_UNKNOWN = 0; {$EXTERNALSYM DIDEVTYPEKEYBOARD_UNKNOWN} DIDEVTYPEKEYBOARD_PCXT = 1; {$EXTERNALSYM DIDEVTYPEKEYBOARD_PCXT} DIDEVTYPEKEYBOARD_OLIVETTI = 2; {$EXTERNALSYM DIDEVTYPEKEYBOARD_OLIVETTI} DIDEVTYPEKEYBOARD_PCAT = 3; {$EXTERNALSYM DIDEVTYPEKEYBOARD_PCAT} DIDEVTYPEKEYBOARD_PCENH = 4; {$EXTERNALSYM DIDEVTYPEKEYBOARD_PCENH} DIDEVTYPEKEYBOARD_NOKIA1050 = 5; {$EXTERNALSYM DIDEVTYPEKEYBOARD_NOKIA1050} DIDEVTYPEKEYBOARD_NOKIA9140 = 6; {$EXTERNALSYM DIDEVTYPEKEYBOARD_NOKIA9140} DIDEVTYPEKEYBOARD_NEC98 = 7; {$EXTERNALSYM DIDEVTYPEKEYBOARD_NEC98} DIDEVTYPEKEYBOARD_NEC98LAPTOP = 8; {$EXTERNALSYM DIDEVTYPEKEYBOARD_NEC98LAPTOP} DIDEVTYPEKEYBOARD_NEC98106 = 9; {$EXTERNALSYM DIDEVTYPEKEYBOARD_NEC98106} DIDEVTYPEKEYBOARD_JAPAN106 = 10; {$EXTERNALSYM DIDEVTYPEKEYBOARD_JAPAN106} DIDEVTYPEKEYBOARD_JAPANAX = 11; {$EXTERNALSYM DIDEVTYPEKEYBOARD_JAPANAX} DIDEVTYPEKEYBOARD_J3100 = 12; {$EXTERNALSYM DIDEVTYPEKEYBOARD_J3100} DIDEVTYPEJOYSTICK_UNKNOWN = 1; {$EXTERNALSYM DIDEVTYPEJOYSTICK_UNKNOWN} DIDEVTYPEJOYSTICK_TRADITIONAL = 2; {$EXTERNALSYM DIDEVTYPEJOYSTICK_TRADITIONAL} DIDEVTYPEJOYSTICK_FLIGHTSTICK = 3; {$EXTERNALSYM DIDEVTYPEJOYSTICK_FLIGHTSTICK} DIDEVTYPEJOYSTICK_GAMEPAD = 4; {$EXTERNALSYM DIDEVTYPEJOYSTICK_GAMEPAD} DIDEVTYPEJOYSTICK_RUDDER = 5; {$EXTERNALSYM DIDEVTYPEJOYSTICK_RUDDER} DIDEVTYPEJOYSTICK_WHEEL = 6; {$EXTERNALSYM DIDEVTYPEJOYSTICK_WHEEL} DIDEVTYPEJOYSTICK_HEADTRACKER = 7; {$EXTERNALSYM DIDEVTYPEJOYSTICK_HEADTRACKER} {$ELSE} DI8DEVTYPEMOUSE_UNKNOWN = 1; {$EXTERNALSYM DI8DEVTYPEMOUSE_UNKNOWN} DI8DEVTYPEMOUSE_TRADITIONAL = 2; {$EXTERNALSYM DI8DEVTYPEMOUSE_TRADITIONAL} DI8DEVTYPEMOUSE_FINGERSTICK = 3; {$EXTERNALSYM DI8DEVTYPEMOUSE_FINGERSTICK} DI8DEVTYPEMOUSE_TOUCHPAD = 4; {$EXTERNALSYM DI8DEVTYPEMOUSE_TOUCHPAD} DI8DEVTYPEMOUSE_TRACKBALL = 5; {$EXTERNALSYM DI8DEVTYPEMOUSE_TRACKBALL} DI8DEVTYPEMOUSE_ABSOLUTE = 6; {$EXTERNALSYM DI8DEVTYPEMOUSE_ABSOLUTE} DI8DEVTYPEKEYBOARD_UNKNOWN = 0; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_UNKNOWN} DI8DEVTYPEKEYBOARD_PCXT = 1; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_PCXT} DI8DEVTYPEKEYBOARD_OLIVETTI = 2; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_OLIVETTI} DI8DEVTYPEKEYBOARD_PCAT = 3; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_PCAT} DI8DEVTYPEKEYBOARD_PCENH = 4; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_PCENH} DI8DEVTYPEKEYBOARD_NOKIA1050 = 5; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_NOKIA1050} DI8DEVTYPEKEYBOARD_NOKIA9140 = 6; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_NOKIA9140} DI8DEVTYPEKEYBOARD_NEC98 = 7; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_NEC98} DI8DEVTYPEKEYBOARD_NEC98LAPTOP = 8; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_NEC98LAPTOP} DI8DEVTYPEKEYBOARD_NEC98106 = 9; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_NEC98106} DI8DEVTYPEKEYBOARD_JAPAN106 = 10; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_JAPAN106} DI8DEVTYPEKEYBOARD_JAPANAX = 11; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_JAPANAX} DI8DEVTYPEKEYBOARD_J3100 = 12; {$EXTERNALSYM DI8DEVTYPEKEYBOARD_J3100} DI8DEVTYPE_LIMITEDGAMESUBTYPE = 1; {$EXTERNALSYM DI8DEVTYPE_LIMITEDGAMESUBTYPE} DI8DEVTYPEJOYSTICK_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE; {$EXTERNALSYM DI8DEVTYPEJOYSTICK_LIMITED} DI8DEVTYPEJOYSTICK_STANDARD = 2; {$EXTERNALSYM DI8DEVTYPEJOYSTICK_STANDARD} DI8DEVTYPEGAMEPAD_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE; {$EXTERNALSYM DI8DEVTYPEGAMEPAD_LIMITED} DI8DEVTYPEGAMEPAD_STANDARD = 2; {$EXTERNALSYM DI8DEVTYPEGAMEPAD_STANDARD} DI8DEVTYPEGAMEPAD_TILT = 3; {$EXTERNALSYM DI8DEVTYPEGAMEPAD_TILT} DI8DEVTYPEDRIVING_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE; {$EXTERNALSYM DI8DEVTYPEDRIVING_LIMITED} DI8DEVTYPEDRIVING_COMBINEDPEDALS = 2; {$EXTERNALSYM DI8DEVTYPEDRIVING_COMBINEDPEDALS} DI8DEVTYPEDRIVING_DUALPEDALS = 3; {$EXTERNALSYM DI8DEVTYPEDRIVING_DUALPEDALS} DI8DEVTYPEDRIVING_THREEPEDALS = 4; {$EXTERNALSYM DI8DEVTYPEDRIVING_THREEPEDALS} DI8DEVTYPEDRIVING_HANDHELD = 5; {$EXTERNALSYM DI8DEVTYPEDRIVING_HANDHELD} DI8DEVTYPEFLIGHT_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE; {$EXTERNALSYM DI8DEVTYPEFLIGHT_LIMITED} DI8DEVTYPEFLIGHT_STICK = 2; {$EXTERNALSYM DI8DEVTYPEFLIGHT_STICK} DI8DEVTYPEFLIGHT_YOKE = 3; {$EXTERNALSYM DI8DEVTYPEFLIGHT_YOKE} DI8DEVTYPEFLIGHT_RC = 4; {$EXTERNALSYM DI8DEVTYPEFLIGHT_RC} DI8DEVTYPE1STPERSON_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE; {$EXTERNALSYM DI8DEVTYPE1STPERSON_LIMITED} DI8DEVTYPE1STPERSON_UNKNOWN = 2; {$EXTERNALSYM DI8DEVTYPE1STPERSON_UNKNOWN} DI8DEVTYPE1STPERSON_SIXDOF = 3; {$EXTERNALSYM DI8DEVTYPE1STPERSON_SIXDOF} DI8DEVTYPE1STPERSON_SHOOTER = 4; {$EXTERNALSYM DI8DEVTYPE1STPERSON_SHOOTER} DI8DEVTYPESCREENPTR_UNKNOWN = 2; {$EXTERNALSYM DI8DEVTYPESCREENPTR_UNKNOWN} DI8DEVTYPESCREENPTR_LIGHTGUN = 3; {$EXTERNALSYM DI8DEVTYPESCREENPTR_LIGHTGUN} DI8DEVTYPESCREENPTR_LIGHTPEN = 4; {$EXTERNALSYM DI8DEVTYPESCREENPTR_LIGHTPEN} DI8DEVTYPESCREENPTR_TOUCH = 5; {$EXTERNALSYM DI8DEVTYPESCREENPTR_TOUCH} DI8DEVTYPEREMOTE_UNKNOWN = 2; {$EXTERNALSYM DI8DEVTYPEREMOTE_UNKNOWN} DI8DEVTYPEDEVICECTRL_UNKNOWN = 2; {$EXTERNALSYM DI8DEVTYPEDEVICECTRL_UNKNOWN} DI8DEVTYPEDEVICECTRL_COMMSSELECTION = 3; {$EXTERNALSYM DI8DEVTYPEDEVICECTRL_COMMSSELECTION} DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED = 4; {$EXTERNALSYM DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED} DI8DEVTYPESUPPLEMENTAL_UNKNOWN = 2; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_UNKNOWN} DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER = 3; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER} DI8DEVTYPESUPPLEMENTAL_HEADTRACKER = 4; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_HEADTRACKER} DI8DEVTYPESUPPLEMENTAL_HANDTRACKER = 5; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_HANDTRACKER} DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE = 6; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE} DI8DEVTYPESUPPLEMENTAL_SHIFTER = 7; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_SHIFTER} DI8DEVTYPESUPPLEMENTAL_THROTTLE = 8; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_THROTTLE} DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE = 9; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE} DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS = 10; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS} DI8DEVTYPESUPPLEMENTAL_DUALPEDALS = 11; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_DUALPEDALS} DI8DEVTYPESUPPLEMENTAL_THREEPEDALS = 12; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_THREEPEDALS} DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS = 13; {$EXTERNALSYM DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS} {$ENDIF} (* DIRECTINPUT_VERSION <= 0x700 *) // #define GET_DIDEVICE_TYPE(dwDevType) LOBYTE(dwDevType) function GET_DIDEVICE_TYPE(dwDevType: DWORD): Byte; {$EXTERNALSYM GET_DIDEVICE_TYPE} // #define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType) function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): Byte; {$EXTERNALSYM GET_DIDEVICE_SUBTYPE} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) (* This structure is defined for DirectX 3.0 compatibility *) type PDIDevCapsDX3 = ^TDIDevCapsDX3; DIDEVCAPS_DX3 = packed record dwSize: DWORD; dwFlags: DWORD; dwDevType: DWORD; dwAxes: DWORD; dwButtons: DWORD; dwPOVs: DWORD; end; {$EXTERNALSYM DIDEVCAPS_DX3} TDIDevCapsDX3 = DIDEVCAPS_DX3; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) PDIDevCaps = ^TDIDevCaps; DIDEVCAPS = packed record dwSize: DWORD; dwFlags: DWORD; dwDevType: DWORD; dwAxes: DWORD; dwButtons: DWORD; dwPOVs: DWORD; {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) dwFFSamplePeriod: DWORD; dwFFMinTimeResolution: DWORD; dwFirmwareRevision: DWORD; dwHardwareRevision: DWORD; dwFFDriverVersion: DWORD; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) end; {$EXTERNALSYM DIDEVCAPS} TDIDevCaps = DIDEVCAPS; const DIDC_ATTACHED = $00000001; {$EXTERNALSYM DIDC_ATTACHED} DIDC_POLLEDDEVICE = $00000002; {$EXTERNALSYM DIDC_POLLEDDEVICE} DIDC_EMULATED = $00000004; {$EXTERNALSYM DIDC_EMULATED} DIDC_POLLEDDATAFORMAT = $00000008; {$EXTERNALSYM DIDC_POLLEDDATAFORMAT} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) DIDC_FORCEFEEDBACK = $00000100; {$EXTERNALSYM DIDC_FORCEFEEDBACK} DIDC_FFATTACK = $00000200; {$EXTERNALSYM DIDC_FFATTACK} DIDC_FFFADE = $00000400; {$EXTERNALSYM DIDC_FFFADE} DIDC_SATURATION = $00000800; {$EXTERNALSYM DIDC_SATURATION} DIDC_POSNEGCOEFFICIENTS = $00001000; {$EXTERNALSYM DIDC_POSNEGCOEFFICIENTS} DIDC_POSNEGSATURATION = $00002000; {$EXTERNALSYM DIDC_POSNEGSATURATION} DIDC_DEADBAND = $00004000; {$EXTERNALSYM DIDC_DEADBAND} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) DIDC_STARTDELAY = $00008000; {$EXTERNALSYM DIDC_STARTDELAY} {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIDC_ALIAS = $00010000; {$EXTERNALSYM DIDC_ALIAS} DIDC_PHANTOM = $00020000; {$EXTERNALSYM DIDC_PHANTOM} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) DIDC_HIDDEN = $00040000; {$EXTERNALSYM DIDC_HIDDEN} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) DIDFT_ALL = $00000000; {$EXTERNALSYM DIDFT_ALL} DIDFT_RELAXIS = $00000001; {$EXTERNALSYM DIDFT_RELAXIS} DIDFT_ABSAXIS = $00000002; {$EXTERNALSYM DIDFT_ABSAXIS} DIDFT_AXIS = $00000003; {$EXTERNALSYM DIDFT_AXIS} DIDFT_PSHBUTTON = $00000004; {$EXTERNALSYM DIDFT_PSHBUTTON} DIDFT_TGLBUTTON = $00000008; {$EXTERNALSYM DIDFT_TGLBUTTON} DIDFT_BUTTON = $0000000C; {$EXTERNALSYM DIDFT_BUTTON} DIDFT_POV = $00000010; {$EXTERNALSYM DIDFT_POV} DIDFT_COLLECTION = $00000040; {$EXTERNALSYM DIDFT_COLLECTION} DIDFT_NODATA = $00000080; {$EXTERNALSYM DIDFT_NODATA} DIDFT_ANYINSTANCE = $00FFFF00; {$EXTERNALSYM DIDFT_ANYINSTANCE} DIDFT_INSTANCEMASK = DIDFT_ANYINSTANCE; {$EXTERNALSYM DIDFT_INSTANCEMASK} // #define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8) function DIDFT_MAKEINSTANCE(n: Cardinal): Cardinal; {$EXTERNALSYM DIDFT_MAKEINSTANCE} // #define DIDFT_GETTYPE(n) LOBYTE(n) function DIDFT_GETTYPE(n: Cardinal): Byte; {$EXTERNALSYM DIDFT_GETTYPE} // #define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8) function DIDFT_GETINSTANCE(n: Cardinal): Cardinal; {$EXTERNALSYM DIDFT_GETINSTANCE} const DIDFT_FFACTUATOR = $01000000; {$EXTERNALSYM DIDFT_FFACTUATOR} DIDFT_FFEFFECTTRIGGER = $02000000; {$EXTERNALSYM DIDFT_FFEFFECTTRIGGER} {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIDFT_OUTPUT = $10000000; {$EXTERNALSYM DIDFT_OUTPUT} DIDFT_VENDORDEFINED = $04000000; {$EXTERNALSYM DIDFT_VENDORDEFINED} DIDFT_ALIAS = $08000000; {$EXTERNALSYM DIDFT_ALIAS} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) DIDFT_OPTIONAL = $80000000; {$EXTERNALSYM DIDFT_OPTIONAL} // #define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8) function DIDFT_ENUMCOLLECTION(n: Cardinal): Cardinal; {$EXTERNALSYM DIDFT_ENUMCOLLECTION} const DIDFT_NOCOLLECTION = $00FFFF00; {$EXTERNALSYM DIDFT_NOCOLLECTION} type PDIObjectDataFormat = ^TDIObjectDataFormat; _DIOBJECTDATAFORMAT = packed record pguid: PGUID; dwOfs: DWORD; dwType: DWORD; dwFlags: DWORD; end; {$EXTERNALSYM _DIOBJECTDATAFORMAT} DIOBJECTDATAFORMAT = _DIOBJECTDATAFORMAT; {$EXTERNALSYM DIOBJECTDATAFORMAT} TDIObjectDataFormat = _DIOBJECTDATAFORMAT; PDIDataFormat = ^TDIDataFormat; _DIDATAFORMAT = packed record dwSize: DWORD; dwObjSize: DWORD; dwFlags: DWORD; dwDataSize: DWORD; dwNumObjs: DWORD; rgodf: PDIObjectDataFormat; end; {$EXTERNALSYM _DIDATAFORMAT} DIDATAFORMAT = _DIDATAFORMAT; {$EXTERNALSYM DIDATAFORMAT} TDIDataFormat = _DIDATAFORMAT; const DIDF_ABSAXIS = $00000001; {$EXTERNALSYM DIDF_ABSAXIS} DIDF_RELAXIS = $00000002; {$EXTERNALSYM DIDF_RELAXIS} {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION > 0x0700) *) type PDIActionA = ^TDIActionA; PDIActionW = ^TDIActionW; PDIAction = PDIActionA; _DIACTIONA = packed record uAppData: Pointer; dwSemantic: DWORD; dwFlags: DWORD; case Byte of 0: ( lptszActionName: PAnsiChar; guidInstance: TGUID; dwObjID: DWORD; dwHow: DWORD; ); 1: ( uResIdString: LongWord; ); end; {$EXTERNALSYM _DIACTIONA} _DIACTIONW = packed record uAppData: Pointer; dwSemantic: DWORD; dwFlags: DWORD; case Byte of 0: ( lptszActionName: PWideChar; guidInstance: TGUID; dwObjID: DWORD; dwHow: DWORD; ); 1: ( uResIdString: LongWord; ); end; {$EXTERNALSYM _DIACTIONW} _DIACTION = _DIACTIONA; {$EXTERNALSYM _DIACTION} DIACTIONA = _DIACTIONA; {$EXTERNALSYM DIACTIONA} DIACTIONW = _DIACTIONW; {$EXTERNALSYM DIACTIONW} DIACTION = DIACTIONA; {$EXTERNALSYM DIACTION} TDIActionA = _DIACTIONA; TDIActionW = _DIACTIONW; TDIAction = TDIActionA; const DIA_FORCEFEEDBACK = $00000001; {$EXTERNALSYM DIA_FORCEFEEDBACK} DIA_APPMAPPED = $00000002; {$EXTERNALSYM DIA_APPMAPPED} DIA_APPNOMAP = $00000004; {$EXTERNALSYM DIA_APPNOMAP} DIA_NORANGE = $00000008; {$EXTERNALSYM DIA_NORANGE} DIA_APPFIXED = $00000010; {$EXTERNALSYM DIA_APPFIXED} DIAH_UNMAPPED = $00000000; {$EXTERNALSYM DIAH_UNMAPPED} DIAH_USERCONFIG = $00000001; {$EXTERNALSYM DIAH_USERCONFIG} DIAH_APPREQUESTED = $00000002; {$EXTERNALSYM DIAH_APPREQUESTED} DIAH_HWAPP = $00000004; {$EXTERNALSYM DIAH_HWAPP} DIAH_HWDEFAULT = $00000008; {$EXTERNALSYM DIAH_HWDEFAULT} DIAH_DEFAULT = $00000020; {$EXTERNALSYM DIAH_DEFAULT} DIAH_ERROR = $80000000; {$EXTERNALSYM DIAH_ERROR} type PDIActionFormatA = ^TDIActionFormatA; PDIActionFormatW = ^TDIActionFormatW; PDIActionFormat = PDIActionFormatA; _DIACTIONFORMATA = packed record dwSize : DWORD; dwActionSize : DWORD; dwDataSize : DWORD; dwNumActions : DWORD; rgoAction : PDIActionA; guidActionMap : TGUID; dwGenre : DWORD; dwBufferSize : DWORD; lAxisMin : Longint; lAxisMax : Longint; hInstString : THandle; ftTimeStamp : TFileTime; dwCRC : DWORD; tszActionMap : array [0..MAX_PATH-1] of AnsiChar; end; {$EXTERNALSYM _DIACTIONFORMATA} _DIACTIONFORMATW = packed record dwSize : DWORD; dwActionSize : DWORD; dwDataSize : DWORD; dwNumActions : DWORD; rgoAction : PDIActionW; guidActionMap : TGUID; dwGenre : DWORD; dwBufferSize : DWORD; lAxisMin : Longint; lAxisMax : Longint; hInstString : THandle; ftTimeStamp : TFileTime; dwCRC : DWORD; tszActionMap : array [0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM _DIACTIONFORMATW} _DIACTIONFORMAT = _DIACTIONFORMATA; {$EXTERNALSYM _DIACTIONFORMAT} DIACTIONFORMATA = _DIACTIONFORMATA; {$EXTERNALSYM DIACTIONFORMATA} DIACTIONFORMATW = _DIACTIONFORMATW; {$EXTERNALSYM DIACTIONFORMATW} DIACTIONFORMAT = DIACTIONFORMATA; {$EXTERNALSYM DIACTIONFORMAT} TDIActionFormatA = _DIACTIONFORMATA; TDIActionFormatW = _DIACTIONFORMATW; TDIActionFormat = TDIActionFormatA; const DIAFTS_NEWDEVICELOW = $FFFFFFFF; {$EXTERNALSYM DIAFTS_NEWDEVICELOW} DIAFTS_NEWDEVICEHIGH = $FFFFFFFF; {$EXTERNALSYM DIAFTS_NEWDEVICEHIGH} DIAFTS_UNUSEDDEVICELOW = $00000000; {$EXTERNALSYM DIAFTS_UNUSEDDEVICELOW} DIAFTS_UNUSEDDEVICEHIGH = $00000000; {$EXTERNALSYM DIAFTS_UNUSEDDEVICEHIGH} DIDBAM_DEFAULT = $00000000; {$EXTERNALSYM DIDBAM_DEFAULT} DIDBAM_PRESERVE = $00000001; {$EXTERNALSYM DIDBAM_PRESERVE} DIDBAM_INITIALIZE = $00000002; {$EXTERNALSYM DIDBAM_INITIALIZE} DIDBAM_HWDEFAULTS = $00000004; {$EXTERNALSYM DIDBAM_HWDEFAULTS} DIDSAM_DEFAULT = $00000000; {$EXTERNALSYM DIDSAM_DEFAULT} DIDSAM_NOUSER = $00000001; {$EXTERNALSYM DIDSAM_NOUSER} DIDSAM_FORCESAVE = $00000002; {$EXTERNALSYM DIDSAM_FORCESAVE} DICD_DEFAULT = $00000000; {$EXTERNALSYM DICD_DEFAULT} DICD_EDIT = $00000001; {$EXTERNALSYM DICD_EDIT} (* * The following definition is normally defined in d3dtypes.h *) type D3DCOLOR = DXTypes.D3DCOLOR; {$EXTERNALSYM D3DCOLOR} TD3DColor = DXTypes.TD3DColor; PD3DColor = DXTypes.PD3DColor; PDIColorSet = ^TDIColorSet; _DICOLORSET = packed record dwSize: DWORD; cTextFore: TD3DColor; cTextHighlight: TD3DColor; cCalloutLine: TD3DColor; cCalloutHighlight: TD3DColor; cBorder: TD3DColor; cControlFill: TD3DColor; cHighlightFill: TD3DColor; cAreaFill: TD3DColor; end; {$EXTERNALSYM _DICOLORSET} DICOLORSET = _DICOLORSET; {$EXTERNALSYM DICOLORSET} TDIColorSet = _DICOLORSET; PDIConfigureDevicesParamsA = ^TDIConfigureDevicesParamsA; PDIConfigureDevicesParamsW = ^TDIConfigureDevicesParamsW; PDIConfigureDevicesParams = PDIConfigureDevicesParamsA; _DICONFIGUREDEVICESPARAMSA = packed record dwSize: DWORD; dwcUsers: DWORD; lptszUserNames: PAnsiChar; dwcFormats: DWORD; lprgFormats: PDIActionFormatA; hwnd: HWND; dics: TDIColorSet; lpUnkDDSTarget: IUnknown; end; {$EXTERNALSYM _DICONFIGUREDEVICESPARAMSA} _DICONFIGUREDEVICESPARAMSW = packed record dwSize: DWORD; dwcUsers: DWORD; lptszUserNames: PWideChar; dwcFormats: DWORD; lprgFormats: PDIActionFormatW; hwnd: HWND; dics: TDIColorSet; lpUnkDDSTarget: IUnknown; end; {$EXTERNALSYM _DICONFIGUREDEVICESPARAMSW} _DICONFIGUREDEVICESPARAMS = _DICONFIGUREDEVICESPARAMSA; {$EXTERNALSYM _DICONFIGUREDEVICESPARAMS} DICONFIGUREDEVICESPARAMSA = _DICONFIGUREDEVICESPARAMSA; {$EXTERNALSYM DICONFIGUREDEVICESPARAMSA} DICONFIGUREDEVICESPARAMSW = _DICONFIGUREDEVICESPARAMSW; {$EXTERNALSYM DICONFIGUREDEVICESPARAMSW} DICONFIGUREDEVICESPARAMS = DICONFIGUREDEVICESPARAMSA; {$EXTERNALSYM DICONFIGUREDEVICESPARAMS} TDIConfigureDevicesParamsA = _DICONFIGUREDEVICESPARAMSA; TDIConfigureDevicesParamsW = _DICONFIGUREDEVICESPARAMSW; TDIConfigureDevicesParams = TDIConfigureDevicesParamsA; const DIDIFT_CONFIGURATION = $00000001; {$EXTERNALSYM DIDIFT_CONFIGURATION} DIDIFT_OVERLAY = $00000002; {$EXTERNALSYM DIDIFT_OVERLAY} DIDAL_CENTERED = $00000000; {$EXTERNALSYM DIDAL_CENTERED} DIDAL_LEFTALIGNED = $00000001; {$EXTERNALSYM DIDAL_LEFTALIGNED} DIDAL_RIGHTALIGNED = $00000002; {$EXTERNALSYM DIDAL_RIGHTALIGNED} DIDAL_MIDDLE = $00000000; {$EXTERNALSYM DIDAL_MIDDLE} DIDAL_TOPALIGNED = $00000004; {$EXTERNALSYM DIDAL_TOPALIGNED} DIDAL_BOTTOMALIGNED = $00000008; {$EXTERNALSYM DIDAL_BOTTOMALIGNED} type PDIDeviceImageInfoA = ^TDIDeviceImageInfoA; PDIDeviceImageInfoW = ^TDIDeviceImageInfoW; PDIDeviceImageInfo = PDIDeviceImageInfoA; _DIDEVICEIMAGEINFOA = packed record tszImagePath: array [0..MAX_PATH-1] of AnsiChar; dwFlags: DWORD; // These are valid if DIDIFT_OVERLAY is present in dwFlags. dwViewID: DWORD; rcOverlay: TRect; dwObjID: DWORD; dwcValidPts: DWORD; rgptCalloutLine: array [0..4] of TPoint; rcCalloutRect: TRect; dwTextAlign: DWORD; end; {$EXTERNALSYM _DIDEVICEIMAGEINFOA} _DIDEVICEIMAGEINFOW = packed record tszImagePath: array [0..MAX_PATH-1] of WideChar; dwFlags: DWORD; // These are valid if DIDIFT_OVERLAY is present in dwFlags. dwViewID: DWORD; rcOverlay: TRect; dwObjID: DWORD; dwcValidPts: DWORD; rgptCalloutLine: array [0..4] of TPoint; rcCalloutRect: TRect; dwTextAlign: DWORD; end; {$EXTERNALSYM _DIDEVICEIMAGEINFOW} _DIDEVICEIMAGEINFO = _DIDEVICEIMAGEINFOA; {$EXTERNALSYM _DIDEVICEIMAGEINFO} DIDEVICEIMAGEINFOA = _DIDEVICEIMAGEINFOA; {$EXTERNALSYM DIDEVICEIMAGEINFOA} DIDEVICEIMAGEINFOW = _DIDEVICEIMAGEINFOW; {$EXTERNALSYM DIDEVICEIMAGEINFOW} DIDEVICEIMAGEINFO = DIDEVICEIMAGEINFOA; {$EXTERNALSYM DIDEVICEIMAGEINFO} TDIDeviceImageInfoA = _DIDEVICEIMAGEINFOA; TDIDeviceImageInfoW = _DIDEVICEIMAGEINFOW; TDIDeviceImageInfo = TDIDeviceImageInfoA; PDIDeviceImageInfoHeaderA = ^TDIDeviceImageInfoHeaderA; PDIDeviceImageInfoHeaderW = ^TDIDeviceImageInfoHeaderW; PDIDeviceImageInfoHeader = PDIDeviceImageInfoHeaderA; _DIDEVICEIMAGEINFOHEADERA = packed record dwSize: DWORD; dwSizeImageInfo: DWORD; dwcViews: DWORD; dwcButtons: DWORD; dwcAxes: DWORD; dwcPOVs: DWORD; dwBufferSize: DWORD; dwBufferUsed: DWORD; lprgImageInfoArray: PDIDeviceImageInfoA; end; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADERA} _DIDEVICEIMAGEINFOHEADERW = packed record dwSize: DWORD; dwSizeImageInfo: DWORD; dwcViews: DWORD; dwcButtons: DWORD; dwcAxes: DWORD; dwcPOVs: DWORD; dwBufferSize: DWORD; dwBufferUsed: DWORD; lprgImageInfoArray: PDIDeviceImageInfoW; end; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADERW} _DIDEVICEIMAGEINFOHEADER = _DIDEVICEIMAGEINFOHEADERA; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADER} DIDEVICEIMAGEINFOHEADERA = _DIDEVICEIMAGEINFOHEADERA; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADERA} DIDEVICEIMAGEINFOHEADERW = _DIDEVICEIMAGEINFOHEADERW; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADERW} DIDEVICEIMAGEINFOHEADER = DIDEVICEIMAGEINFOHEADERA; {$EXTERNALSYM _DIDEVICEIMAGEINFOHEADER} TDIDeviceImageInfoHeaderA = _DIDEVICEIMAGEINFOHEADERA; TDIDeviceImageInfoHeaderW = _DIDEVICEIMAGEINFOHEADERW; TDIDeviceImageInfoHeader = TDIDeviceImageInfoHeaderA; {$ENDIF} (* DIRECTINPUT_VERSION > 0x0700 *) {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) (* These structures are defined for DirectX 3.0 compatibility *) type PDIDeviceObjectInstanceDX3A = ^TDIDeviceObjectInstanceDX3A; PDIDeviceObjectInstanceDX3W = ^TDIDeviceObjectInstanceDX3W; PDIDeviceObjectInstanceDX3 = PDIDeviceObjectInstanceDX3A; DIDEVICEOBJECTINSTANCE_DX3A = packed record dwSize: DWORD; guidType: TGUID; dwOfs: DWORD; dwType: DWORD; dwFlags: DWORD; tszName: array [0..MAX_PATH-1] of AnsiChar; end; {$EXTERNALSYM DIDEVICEOBJECTINSTANCE_DX3A} DIDEVICEOBJECTINSTANCE_DX3W = packed record dwSize: DWORD; guidType: TGUID; dwOfs: DWORD; dwType: DWORD; dwFlags: DWORD; tszName: array [0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM DIDEVICEOBJECTINSTANCE_DX3W} DIDEVICEOBJECTINSTANCE_DX3 = DIDEVICEOBJECTINSTANCE_DX3A; {$EXTERNALSYM DIDEVICEOBJECTINSTANCE_DX3} TDIDeviceObjectInstanceDX3A = DIDEVICEOBJECTINSTANCE_DX3A; TDIDeviceObjectInstanceDX3W = DIDEVICEOBJECTINSTANCE_DX3W; TDIDeviceObjectInstanceDX3 = TDIDeviceObjectInstanceDX3A; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) type PDIDeviceObjectInstanceA = ^TDIDeviceObjectInstanceA; PDIDeviceObjectInstanceW = ^TDIDeviceObjectInstanceW; PDIDeviceObjectInstance = PDIDeviceObjectInstanceA; DIDEVICEOBJECTINSTANCEA = packed record dwSize: DWORD; guidType: TGUID; dwOfs: DWORD; dwType: DWORD; dwFlags: DWORD; tszName: array[0..MAX_PATH-1] of AnsiChar; {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) dwFFMaxForce: DWORD; dwFFForceResolution: DWORD; wCollectionNumber: Word; wDesignatorIndex: Word; wUsagePage: Word; wUsage: Word; dwDimension: DWORD; wExponent: Word; wReportId: Word; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) end; {$EXTERNALSYM DIDEVICEOBJECTINSTANCEA} DIDEVICEOBJECTINSTANCEW = packed record dwSize: DWORD; guidType: TGUID; dwOfs: DWORD; dwType: DWORD; dwFlags: DWORD; tszName: array[0..MAX_PATH-1] of WideChar; {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) dwFFMaxForce: DWORD; dwFFForceResolution: DWORD; wCollectionNumber: Word; wDesignatorIndex: Word; wUsagePage: Word; wUsage: Word; dwDimension: DWORD; wExponent: Word; wReportId: Word; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) end; {$EXTERNALSYM DIDEVICEOBJECTINSTANCEW} DIDEVICEOBJECTINSTANCE = DIDEVICEOBJECTINSTANCEA; {$EXTERNALSYM DIDEVICEOBJECTINSTANCE} TDIDeviceObjectInstanceA = DIDEVICEOBJECTINSTANCEA; TDIDeviceObjectInstanceW = DIDEVICEOBJECTINSTANCEW; TDIDeviceObjectInstance = TDIDeviceObjectInstanceA; type TDIEnumDeviceObjectsCallbackA = function (var lpddoi: TDIDeviceObjectInstanceA; pvRef : Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDeviceObjectsCallbackA} TDIEnumDeviceObjectsCallbackW = function (var lpddoi: TDIDeviceObjectInstanceW; pvRef : Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDeviceObjectsCallbackW} TDIEnumDeviceObjectsCallback = TDIEnumDeviceObjectsCallbackA; {$EXTERNALSYM TDIEnumDeviceObjectsCallback} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) const DIDOI_FFACTUATOR = $00000001; {$EXTERNALSYM DIDOI_FFACTUATOR} DIDOI_FFEFFECTTRIGGER = $00000002; {$EXTERNALSYM DIDOI_FFEFFECTTRIGGER} DIDOI_POLLED = $00008000; {$EXTERNALSYM DIDOI_POLLED} DIDOI_ASPECTPOSITION = $00000100; {$EXTERNALSYM DIDOI_ASPECTPOSITION} DIDOI_ASPECTVELOCITY = $00000200; {$EXTERNALSYM DIDOI_ASPECTVELOCITY} DIDOI_ASPECTACCEL = $00000300; {$EXTERNALSYM DIDOI_ASPECTACCEL} DIDOI_ASPECTFORCE = $00000400; {$EXTERNALSYM DIDOI_ASPECTFORCE} DIDOI_ASPECTMASK = $00000F00; {$EXTERNALSYM DIDOI_ASPECTMASK} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIDOI_GUIDISUSAGE = $00010000; {$EXTERNALSYM DIDOI_GUIDISUSAGE} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) type PDIPropHeader = ^TDIPropHeader; DIPROPHEADER = packed record dwSize: DWORD; dwHeaderSize: DWORD; dwObj: DWORD; dwHow: DWORD; end; {$EXTERNALSYM DIPROPHEADER} TDIPropHeader = DIPROPHEADER; const DIPH_DEVICE = 0; {$EXTERNALSYM DIPH_DEVICE} DIPH_BYOFFSET = 1; {$EXTERNALSYM DIPH_BYOFFSET} DIPH_BYID = 2; {$EXTERNALSYM DIPH_BYID} {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIPH_BYUSAGE = 3; {$EXTERNALSYM DIPH_BYUSAGE} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) // #define DIMAKEUSAGEDWORD(UsagePage, Usage) \ // (DWORD)MAKELONG(Usage, UsagePage) function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; {$EXTERNALSYM DIMAKEUSAGEDWORD} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) type PDIPropDWord = ^TDIPropDWord; DIPROPDWORD = packed record diph: TDIPropHeader; dwData: DWORD; end; {$EXTERNALSYM DIPROPDWORD} TDIPropDWord = DIPROPDWORD; {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) PDIPropPointer = ^TDIPropPointer; DIPROPPOINTER = packed record diph: TDIPropHeader; uData: Pointer; end; {$EXTERNALSYM DIPROPPOINTER} TDIPropPointer = DIPROPPOINTER; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) PDIPropRange = ^TDIPropRange; DIPROPRANGE = packed record diph: TDIPropHeader; lMin: Longint; lMax: Longint; end; {$EXTERNALSYM DIPROPRANGE} TDIPropRange = DIPROPRANGE; const DIPROPRANGE_NOMIN = $80000000; {$EXTERNALSYM DIPROPRANGE_NOMIN} DIPROPRANGE_NOMAX = $7FFFFFFF; {$EXTERNALSYM DIPROPRANGE_NOMAX} {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) type PDIPropCal = ^TDIPropCal; DIPROPCAL = packed record diph: TDIPropHeader; lMin: Longint; lCenter: Longint; lMax: Longint; end; {$EXTERNALSYM DIPROPCAL} TDIPropCal = DIPROPCAL; PDIPropCalPov = ^TDIPropCalPov; DIPROPCALPOV = packed record diph: TDIPropHeader; lMin: array[0..4] of Longint; lMax: array[0..4] of Longint; end; {$EXTERNALSYM DIPROPCALPOV} TDIPropCalPov = DIPROPCALPOV; PDIPropGuidAndPath = ^TDIPropGuidAndPath; DIPROPGUIDANDPATH = packed record diph: TDIPropHeader; guidClass: TGUID; wszPath: array[0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM DIPROPGUIDANDPATH} TDIPropGuidAndPath = DIPROPGUIDANDPATH; PDIPropString = ^TDIPropString; DIPROPSTRING = packed record diph: TDIPropHeader; wsz: array[0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM DIPROPSTRING} TDIPropString = DIPROPSTRING; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) const MAXCPOINTSNUM = 8; {$EXTERNALSYM MAXCPOINTSNUM} type PCPoint = ^TCPoint; _CPOINT = packed record lP: Longint; // raw value dwLog: DWORD; // logical_value / max_logical_value * 10000 end; {$EXTERNALSYM _CPOINT} CPOINT = _CPOINT; {$EXTERNALSYM CPOINT} TCPoint = _CPOINT; PDIPropCPoints = ^TDIPropCPoints; DIPROPCPOINTS = packed record diph: TDIPropHeader; dwCPointsNum: DWORD; cp: array[0..MAXCPOINTSNUM-1] of TCPoint; end; {$EXTERNALSYM DIPROPCPOINTS} TDIPropCPoints = DIPROPCPOINTS; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) // #define MAKEDIPROP(prop) (*(const GUID *)(prop)) type MAKEDIPROP = PGUID; {$EXTERNALSYM MAKEDIPROP} const DIPROP_BUFFERSIZE = MAKEDIPROP(1); {$EXTERNALSYM DIPROP_BUFFERSIZE} DIPROP_AXISMODE = MAKEDIPROP(2); {$EXTERNALSYM DIPROP_AXISMODE} DIPROPAXISMODE_ABS = 0; {$EXTERNALSYM DIPROPAXISMODE_ABS} DIPROPAXISMODE_REL = 1; {$EXTERNALSYM DIPROPAXISMODE_REL} DIPROP_GRANULARITY = MAKEDIPROP(3); {$EXTERNALSYM DIPROP_GRANULARITY} DIPROP_RANGE = MAKEDIPROP(4); {$EXTERNALSYM DIPROP_RANGE} DIPROP_DEADZONE = MAKEDIPROP(5); {$EXTERNALSYM DIPROP_DEADZONE} DIPROP_SATURATION = MAKEDIPROP(6); {$EXTERNALSYM DIPROP_SATURATION} DIPROP_FFGAIN = MAKEDIPROP(7); {$EXTERNALSYM DIPROP_FFGAIN} DIPROP_FFLOAD = MAKEDIPROP(8); {$EXTERNALSYM DIPROP_FFLOAD} DIPROP_AUTOCENTER = MAKEDIPROP(9); {$EXTERNALSYM DIPROP_AUTOCENTER} DIPROPAUTOCENTER_OFF = 0; {$EXTERNALSYM DIPROPAUTOCENTER_OFF} DIPROPAUTOCENTER_ON = 1; {$EXTERNALSYM DIPROPAUTOCENTER_ON} DIPROP_CALIBRATIONMODE = MAKEDIPROP(10); {$EXTERNALSYM DIPROP_CALIBRATIONMODE} DIPROPCALIBRATIONMODE_COOKED = 0; {$EXTERNALSYM DIPROPCALIBRATIONMODE_COOKED} DIPROPCALIBRATIONMODE_RAW = 1; {$EXTERNALSYM DIPROPCALIBRATIONMODE_RAW} {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIPROP_CALIBRATION = MAKEDIPROP(11); {$EXTERNALSYM DIPROP_CALIBRATION} DIPROP_GUIDANDPATH = MAKEDIPROP(12); {$EXTERNALSYM DIPROP_GUIDANDPATH} DIPROP_INSTANCENAME = MAKEDIPROP(13); {$EXTERNALSYM DIPROP_INSTANCENAME} DIPROP_PRODUCTNAME = MAKEDIPROP(14); {$EXTERNALSYM DIPROP_PRODUCTNAME} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x05b2) *) DIPROP_JOYSTICKID = MAKEDIPROP(15); {$EXTERNALSYM DIPROP_JOYSTICKID} DIPROP_GETPORTDISPLAYNAME = MAKEDIPROP(16); {$EXTERNALSYM DIPROP_GETPORTDISPLAYNAME} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x05b2 *) {$IFDEF DIRECTINPUT_VERSION_7} (* #if(DIRECTINPUT_VERSION >= 0x0700) *) DIPROP_PHYSICALRANGE = MAKEDIPROP(18); {$EXTERNALSYM DIPROP_PHYSICALRANGE} DIPROP_LOGICALRANGE = MAKEDIPROP(19); {$EXTERNALSYM DIPROP_LOGICALRANGE} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) DIPROP_KEYNAME = MAKEDIPROP(20); {$EXTERNALSYM DIPROP_KEYNAME} DIPROP_CPOINTS = MAKEDIPROP(21); {$EXTERNALSYM DIPROP_CPOINTS} DIPROP_APPDATA = MAKEDIPROP(22); {$EXTERNALSYM DIPROP_APPDATA} DIPROP_SCANCODE = MAKEDIPROP(23); {$EXTERNALSYM DIPROP_SCANCODE} DIPROP_VIDPID = MAKEDIPROP(24); {$EXTERNALSYM DIPROP_VIDPID} DIPROP_USERNAME = MAKEDIPROP(25); {$EXTERNALSYM DIPROP_USERNAME} DIPROP_TYPENAME = MAKEDIPROP(26); {$EXTERNALSYM DIPROP_TYPENAME} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) type PDIDeviceObjectDataDX3 = ^TDIDeviceObjectDataDX3; DIDEVICEOBJECTDATA_DX3 = packed record dwOfs: DWORD; dwData: DWORD; dwTimeStamp: DWORD; dwSequence: DWORD; end; {$EXTERNALSYM DIDEVICEOBJECTDATA_DX3} TDIDeviceObjectDataDX3 = DIDEVICEOBJECTDATA_DX3; PDIDeviceObjectData = ^TDIDeviceObjectData; DIDEVICEOBJECTDATA = packed record dwOfs: DWORD; dwData: DWORD; dwTimeStamp: DWORD; dwSequence: DWORD; {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) uAppData: Pointer; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) end; {$EXTERNALSYM DIDEVICEOBJECTDATA} TDIDeviceObjectData = DIDEVICEOBJECTDATA; const DIGDD_PEEK = $00000001; {$EXTERNALSYM DIGDD_PEEK} // #define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \ // ((int)((dwSequence1) - (dwSequence2)) cmp 0) // Translator: This is not convertable to pascal const DISCL_EXCLUSIVE = $00000001; {$EXTERNALSYM DISCL_EXCLUSIVE} DISCL_NONEXCLUSIVE = $00000002; {$EXTERNALSYM DISCL_NONEXCLUSIVE} DISCL_FOREGROUND = $00000004; {$EXTERNALSYM DISCL_FOREGROUND} DISCL_BACKGROUND = $00000008; {$EXTERNALSYM DISCL_BACKGROUND} DISCL_NOWINKEY = $00000010; {$EXTERNALSYM DISCL_NOWINKEY} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) (* These structures are defined for DirectX 3.0 compatibility *) type PDIDeviceInstanceDX3A = ^TDIDeviceInstanceDX3A; PDIDeviceInstanceDX3W = ^TDIDeviceInstanceDX3W; PDIDeviceInstanceDX3 = PDIDeviceInstanceDX3A; DIDEVICEINSTANCE_DX3A = packed record dwSize: DWORD; guidInstance: TGUID; guidProduct: TGUID; dwDevType: DWORD; tszInstanceName: array[0..MAX_PATH-1] of AnsiChar; tszProductName: array[0..MAX_PATH-1] of AnsiChar; end; {$EXTERNALSYM DIDEVICEINSTANCE_DX3A} DIDEVICEINSTANCE_DX3W = packed record dwSize: DWORD; guidInstance: TGUID; guidProduct: TGUID; dwDevType: DWORD; tszInstanceName: array[0..MAX_PATH-1] of WideChar; tszProductName: array[0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM DIDEVICEINSTANCE_DX3W} DIDEVICEINSTANCE_DX3 = DIDEVICEINSTANCE_DX3A; {$EXTERNALSYM DIDEVICEINSTANCE_DX3} TDIDeviceInstanceDX3A = DIDEVICEINSTANCE_DX3A; TDIDeviceInstanceDX3W = DIDEVICEINSTANCE_DX3W; TDIDeviceInstanceDX3 = TDIDeviceInstanceDX3A; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) type PDIDeviceInstanceA = ^TDIDeviceInstanceA; PDIDeviceInstanceW = ^TDIDeviceInstanceW; PDIDeviceInstance = PDIDeviceInstanceA; DIDEVICEINSTANCEA = packed record dwSize: DWORD; guidInstance: TGUID; guidProduct: TGUID; dwDevType: DWORD; tszInstanceName: array[0..MAX_PATH-1] of AnsiChar; tszProductName: array[0..MAX_PATH-1] of AnsiChar; {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) guidFFDriver: TGUID; wUsagePage: Word; wUsage: Word; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) end; {$EXTERNALSYM DIDEVICEINSTANCEA} DIDEVICEINSTANCEW = packed record dwSize: DWORD; guidInstance: TGUID; guidProduct: TGUID; dwDevType: DWORD; tszInstanceName: array[0..MAX_PATH-1] of WideChar; tszProductName: array[0..MAX_PATH-1] of WideChar; {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) guidFFDriver: TGUID; wUsagePage: Word; wUsage: Word; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) end; {$EXTERNALSYM DIDEVICEINSTANCEW} DIDEVICEINSTANCE = DIDEVICEINSTANCEA; {$EXTERNALSYM DIDEVICEINSTANCE} TDIDeviceInstanceA = DIDEVICEINSTANCEA; TDIDeviceInstanceW = DIDEVICEINSTANCEW; TDIDeviceInstance = TDIDeviceInstanceA; type {$EXTERNALSYM IDirectInputDeviceA} IDirectInputDeviceA = interface(IUnknown) [SID_IDirectInputDeviceA] (*** IDirectInputDeviceA methods ***) function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackA; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; function Acquire: HResult; stdcall; function Unacquire: HResult; stdcall; function GetDeviceState(cbData: DWORD; lpvData: Pointer): HResult; stdcall; function GetDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; out pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; function SetEventNotification(hEvent: THandle): HResult; stdcall; function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceA; dwObj, dwHow: DWORD): HResult; stdcall; function GetDeviceInfo(var pdidi: TDIDeviceInstanceA): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDeviceW} IDirectInputDeviceW = interface(IUnknown) [SID_IDirectInputDeviceW] (*** IDirectInputDeviceW methods ***) function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackW; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; function Acquire: HResult; stdcall; function Unacquire: HResult; stdcall; function GetDeviceState(cbData: DWORD; lpvData: Pointer): HResult; stdcall; function GetDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; out pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; function SetEventNotification(hEvent: THandle): HResult; stdcall; function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceW; dwObj, dwHow: DWORD): HResult; stdcall; function GetDeviceInfo(var pdidi: TDIDeviceInstanceW): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice} IDirectInputDevice = IDirectInputDeviceA; type IID_IDirectInputDevice = IDirectInputDevice; {$EXTERNALSYM IID_IDirectInputDevice} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) const DISFFC_RESET = $00000001; {$EXTERNALSYM DISFFC_RESET} DISFFC_STOPALL = $00000002; {$EXTERNALSYM DISFFC_STOPALL} DISFFC_PAUSE = $00000004; {$EXTERNALSYM DISFFC_PAUSE} DISFFC_CONTINUE = $00000008; {$EXTERNALSYM DISFFC_CONTINUE} DISFFC_SETACTUATORSON = $00000010; {$EXTERNALSYM DISFFC_SETACTUATORSON} DISFFC_SETACTUATORSOFF = $00000020; {$EXTERNALSYM DISFFC_SETACTUATORSOFF} DIGFFS_EMPTY = $00000001; {$EXTERNALSYM DIGFFS_EMPTY} DIGFFS_STOPPED = $00000002; {$EXTERNALSYM DIGFFS_STOPPED} DIGFFS_PAUSED = $00000004; {$EXTERNALSYM DIGFFS_PAUSED} DIGFFS_ACTUATORSON = $00000010; {$EXTERNALSYM DIGFFS_ACTUATORSON} DIGFFS_ACTUATORSOFF = $00000020; {$EXTERNALSYM DIGFFS_ACTUATORSOFF} DIGFFS_POWERON = $00000040; {$EXTERNALSYM DIGFFS_POWERON} DIGFFS_POWEROFF = $00000080; {$EXTERNALSYM DIGFFS_POWEROFF} DIGFFS_SAFETYSWITCHON = $00000100; {$EXTERNALSYM DIGFFS_SAFETYSWITCHON} DIGFFS_SAFETYSWITCHOFF = $00000200; {$EXTERNALSYM DIGFFS_SAFETYSWITCHOFF} DIGFFS_USERFFSWITCHON = $00000400; {$EXTERNALSYM DIGFFS_USERFFSWITCHON} DIGFFS_USERFFSWITCHOFF = $00000800; {$EXTERNALSYM DIGFFS_USERFFSWITCHOFF} DIGFFS_DEVICELOST = $80000000; {$EXTERNALSYM DIGFFS_DEVICELOST} type PDIEffectInfoA = ^TDIEffectInfoA; PDIEffectInfoW = ^TDIEffectInfoW; PDIEffectInfo = PDIEffectInfoA; DIEFFECTINFOA = packed record dwSize: DWORD; guid: TGUID; dwEffType: DWORD; dwStaticParams: DWORD; dwDynamicParams: DWORD; tszName: array[0..MAX_PATH-1] of AnsiChar; end; {$EXTERNALSYM DIEFFECTINFOA} DIEFFECTINFOW = packed record dwSize: DWORD; guid: TGUID; dwEffType: DWORD; dwStaticParams: DWORD; dwDynamicParams: DWORD; tszName: array[0..MAX_PATH-1] of WideChar; end; {$EXTERNALSYM DIEFFECTINFOW} DIEFFECTINFO = DIEFFECTINFOA; {$EXTERNALSYM DIEFFECTINFO} TDIEffectInfoA = DIEFFECTINFOA; TDIEffectInfoW = DIEFFECTINFOW; TDIEffectInfo = TDIEffectInfoA; const DISDD_CONTINUE = $00000001; {$EXTERNALSYM DISDD_CONTINUE} type TDIEnumEffectsCallbackA = function (var pdei: TDIEffectInfoA; pvRef: Pointer): BOOL; stdcall; {$NODEFINE TDIEnumEffectsCallbackA} (*$HPPEMIT 'typedef LPDIENUMEFFECTSCALLBACKA TDIEnumEffectsCallbackA;'*) TDIEnumEffectsCallbackW = function (var pdei: TDIEffectInfoW; pvRef: Pointer): BOOL; stdcall; {$NODEFINE TDIEnumEffectsCallbackW} (*$HPPEMIT 'typedef LPDIENUMEFFECTSCALLBACKW TDIEnumEffectsCallbackW;'*) TDIEnumEffectsCallback = TDIEnumEffectsCallbackA; {$NODEFINE TDIEnumEffectsCallback} {$HPPEMIT 'typedef LPDIENUMEFFECTSINFILECALLBACK TDIEnumEffectsInFileCallback;'} TDIEnumCreatedEffectObjectsCallback = function (peff : IDirectInputEffect; pvRev: Pointer): BOOL; stdcall; {$NODEFINE TDIEnumCreatedEffectObjectsCallback} {$HPPEMIT 'typedef LPDIENUMCREATEDEFFECTOBJECTSCALLBACK TDIEnumCreatedEffectObjectsCallback;'} {$EXTERNALSYM IDirectInputDevice2A} IDirectInputDevice2A = interface(IDirectInputDeviceA) [SID_IDirectInputDevice2A] (*** IDirectInputDevice2A methods ***) function CreateEffect(const rguid: TGUID; lpeff: PDIEffect; out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; function EnumEffects(lpCallback: TDIEnumEffectsCallbackA; pvRef: Pointer; dwEffType: DWORD): HResult; stdcall; function GetEffectInfo(var pdei: TDIEffectInfoA; const rguid: TGUID): HResult; stdcall; function GetForceFeedbackState(out pdwOut: DWORD): HResult; stdcall; function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; function EnumCreatedEffectObjects(lpCallback: TDIEnumCreatedEffectObjectsCallback; pvRef: Pointer; fl: DWORD): HResult; stdcall; function Escape(var pesc: TDIEffEscape): HResult; stdcall; function Poll: HResult; stdcall; function SendDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice2W} IDirectInputDevice2W = interface(IDirectInputDeviceW) [SID_IDirectInputDevice2W] (*** IDirectInputDevice2W methods ***) function CreateEffect(const rguid: TGUID; lpeff: PDIEffect; out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; function EnumEffects(lpCallback: TDIEnumEffectsCallbackW; pvRef: Pointer; dwEffType: DWORD): HResult; stdcall; function GetEffectInfo(var pdei: TDIEffectInfoW; const rguid: TGUID): HResult; stdcall; function GetForceFeedbackState(out pdwOut: DWORD): HResult; stdcall; function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; function EnumCreatedEffectObjects(lpCallback: TDIEnumCreatedEffectObjectsCallback; pvRef: Pointer; fl: DWORD): HResult; stdcall; function Escape(var pesc: TDIEffEscape): HResult; stdcall; function Poll: HResult; stdcall; function SendDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice2} IDirectInputDevice2 = IDirectInputDevice2A; type IID_IDirectInputDevice2 = IDirectInputDevice2; {$EXTERNALSYM IID_IDirectInputDevice2} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) {$IFDEF DIRECTINPUT_VERSION_7} (* #if(DIRECTINPUT_VERSION >= 0x0700) *) const DIFEF_DEFAULT = $00000000; {$EXTERNALSYM DIFEF_DEFAULT} DIFEF_INCLUDENONSTANDARD = $00000001; {$EXTERNALSYM DIFEF_INCLUDENONSTANDARD} DIFEF_MODIFYIFNEEDED = $00000010; {$EXTERNALSYM DIFEF_MODIFYIFNEEDED} type {$EXTERNALSYM IDirectInputDevice7A} IDirectInputDevice7A = interface(IDirectInputDevice2A) [SID_IDirectInputDevice7A] (*** IDirectInputDevice7A methods ***) function EnumEffectsInFile(lpszFileName: PAnsiChar; pec: TDIEnumEffectsInFileCallback; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function WriteEffectToFile(lpszFileName: PAnsiChar; dwEntries: DWORD; rgDiFileEft: PDIFileEffect; dwFlags: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice7W} IDirectInputDevice7W = interface(IDirectInputDevice2W) [SID_IDirectInputDevice7W] (*** IDirectInputDevice7W methods ***) function EnumEffectsInFile(lpszFileName: PWideChar; pec: TDIEnumEffectsInFileCallback; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function WriteEffectToFile(lpszFileName: PWideChar; dwEntries: DWORD; rgDiFileEft: PDIFileEffect; dwFlags: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice7} IDirectInputDevice7 = IDirectInputDevice7A; type IID_IDirectInputDevice7 = IDirectInputDevice7; {$EXTERNALSYM IID_IDirectInputDevice7} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) type {$EXTERNALSYM IDirectInputDevice8A} IDirectInputDevice8A = interface(IDirectInputDevice7A) [SID_IDirectInputDevice8A] (*** IDirectInputDevice8A methods ***) function BuildActionMap(out lpdiaf: TDIActionFormatA; lpszUserName: PAnsiChar; dwFlags: DWORD): HResult; stdcall; function SetActionMap(var lpdiActionFormat: TDIActionFormatA; lptszUserName: PAnsiChar; dwFlags: DWORD): HResult; stdcall; function GetImageInfo(var lpdiDevImageInfoHeader: TDIDeviceImageInfoHeaderA): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice8W} IDirectInputDevice8W = interface(IDirectInputDevice7W) [SID_IDirectInputDevice8W] (*** IDirectInputDevice8W methods ***) function BuildActionMap(out lpdiaf: TDIActionFormatW; lpszUserName: PWideChar; dwFlags: DWORD): HResult; stdcall; function SetActionMap(var lpdiActionFormat: TDIActionFormatW; lptszUserName: PWideChar; dwFlags: DWORD): HResult; stdcall; function GetImageInfo(var lpdiDevImageInfoHeader: TDIDeviceImageInfoHeaderW): HResult; stdcall; end; {$EXTERNALSYM IDirectInputDevice8} IDirectInputDevice8 = IDirectInputDevice8A; type IID_IDirectInputDevice8 = IDirectInputDevice8; {$EXTERNALSYM IID_IDirectInputDevice8} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) (**************************************************************************** * * Mouse * ****************************************************************************) type PDIMouseState = ^TDIMouseState; _DIMOUSESTATE = packed record lX: Longint; lY: Longint; lZ: Longint; rgbButtons: array[0..3] of Byte; end; {$EXTERNALSYM _DIMOUSESTATE} DIMOUSESTATE = _DIMOUSESTATE; {$EXTERNALSYM DIMOUSESTATE} TDIMouseState = _DIMOUSESTATE; {$IFDEF DIRECTINPUT_VERSION_7} (* #if(DIRECTINPUT_VERSION >= 0x0700) *) PDIMouseState2 = ^TDIMouseState2; _DIMOUSESTATE2 = packed record lX: Longint; lY: Longint; lZ: Longint; rgbButtons: array[0..7] of Byte; end; {$EXTERNALSYM _DIMOUSESTATE2} DIMOUSESTATE2 = _DIMOUSESTATE2; {$EXTERNALSYM DIMOUSESTATE2} TDIMouseState2 = _DIMOUSESTATE2; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) const DIMOFS_X = 0; // FIELD_OFFSET(DIMOUSESTATE, lX) {$EXTERNALSYM DIMOFS_X} DIMOFS_Y = 4; // FIELD_OFFSET(DIMOUSESTATE, lY) {$EXTERNALSYM DIMOFS_Y} DIMOFS_Z = 8; // FIELD_OFFSET(DIMOUSESTATE, lZ) {$EXTERNALSYM DIMOFS_Z} DIMOFS_BUTTON0 = 12; // (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 0) {$EXTERNALSYM DIMOFS_BUTTON0} DIMOFS_BUTTON1 = DIMOFS_BUTTON0 + 1; // (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 1) {$EXTERNALSYM DIMOFS_BUTTON1} DIMOFS_BUTTON2 = DIMOFS_BUTTON0 + 2; // (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 2) {$EXTERNALSYM DIMOFS_BUTTON2} DIMOFS_BUTTON3 = DIMOFS_BUTTON0 + 3; // (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 3) {$EXTERNALSYM DIMOFS_BUTTON3} {$IFDEF DIRECTINPUT_VERSION_7} (* #if(DIRECTINPUT_VERSION >= 0x0700) *) DIMOFS_BUTTON4 = DIMOFS_BUTTON0 + 4; // (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 4) {$EXTERNALSYM DIMOFS_BUTTON4} DIMOFS_BUTTON5 = DIMOFS_BUTTON0 + 5; // (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 5) {$EXTERNALSYM DIMOFS_BUTTON5} DIMOFS_BUTTON6 = DIMOFS_BUTTON0 + 6; // (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 6) {$EXTERNALSYM DIMOFS_BUTTON6} DIMOFS_BUTTON7 = DIMOFS_BUTTON0 + 7; // (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 7) {$EXTERNALSYM DIMOFS_BUTTON7} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) (**************************************************************************** * * Keyboard * ****************************************************************************) (**************************************************************************** * * DirectInput keyboard scan codes * ****************************************************************************) const DIK_ESCAPE = $01; {$EXTERNALSYM DIK_ESCAPE} DIK_1 = $02; {$EXTERNALSYM DIK_1} DIK_2 = $03; {$EXTERNALSYM DIK_2} DIK_3 = $04; {$EXTERNALSYM DIK_3} DIK_4 = $05; {$EXTERNALSYM DIK_4} DIK_5 = $06; {$EXTERNALSYM DIK_5} DIK_6 = $07; {$EXTERNALSYM DIK_6} DIK_7 = $08; {$EXTERNALSYM DIK_7} DIK_8 = $09; {$EXTERNALSYM DIK_8} DIK_9 = $0A; {$EXTERNALSYM DIK_9} DIK_0 = $0B; {$EXTERNALSYM DIK_0} DIK_MINUS = $0C; (* - on main keyboard *) {$EXTERNALSYM DIK_MINUS} DIK_EQUALS = $0D; {$EXTERNALSYM DIK_EQUALS} DIK_BACK = $0E; (* backspace *) {$EXTERNALSYM DIK_BACK} DIK_TAB = $0F; {$EXTERNALSYM DIK_TAB} DIK_Q = $10; {$EXTERNALSYM DIK_Q} DIK_W = $11; {$EXTERNALSYM DIK_W} DIK_E = $12; {$EXTERNALSYM DIK_E} DIK_R = $13; {$EXTERNALSYM DIK_R} DIK_T = $14; {$EXTERNALSYM DIK_T} DIK_Y = $15; {$EXTERNALSYM DIK_Y} DIK_U = $16; {$EXTERNALSYM DIK_U} DIK_I = $17; {$EXTERNALSYM DIK_I} DIK_O = $18; {$EXTERNALSYM DIK_O} DIK_P = $19; {$EXTERNALSYM DIK_P} DIK_LBRACKET = $1A; {$EXTERNALSYM DIK_LBRACKET} DIK_RBRACKET = $1B; {$EXTERNALSYM DIK_RBRACKET} DIK_RETURN = $1C; (* Enter on main keyboard *) {$EXTERNALSYM DIK_RETURN} DIK_LCONTROL = $1D; {$EXTERNALSYM DIK_LCONTROL} DIK_A = $1E; {$EXTERNALSYM DIK_A} DIK_S = $1F; {$EXTERNALSYM DIK_S} DIK_D = $20; {$EXTERNALSYM DIK_D} DIK_F = $21; {$EXTERNALSYM DIK_F} DIK_G = $22; {$EXTERNALSYM DIK_G} DIK_H = $23; {$EXTERNALSYM DIK_H} DIK_J = $24; {$EXTERNALSYM DIK_J} DIK_K = $25; {$EXTERNALSYM DIK_K} DIK_L = $26; {$EXTERNALSYM DIK_L} DIK_SEMICOLON = $27; {$EXTERNALSYM DIK_SEMICOLON} DIK_APOSTROPHE = $28; {$EXTERNALSYM DIK_APOSTROPHE} DIK_GRAVE = $29; (* accent grave *) {$EXTERNALSYM DIK_GRAVE} DIK_LSHIFT = $2A; {$EXTERNALSYM DIK_LSHIFT} DIK_BACKSLASH = $2B; {$EXTERNALSYM DIK_BACKSLASH} DIK_Z = $2C; {$EXTERNALSYM DIK_Z} DIK_X = $2D; {$EXTERNALSYM DIK_X} DIK_C = $2E; {$EXTERNALSYM DIK_C} DIK_V = $2F; {$EXTERNALSYM DIK_V} DIK_B = $30; {$EXTERNALSYM DIK_B} DIK_N = $31; {$EXTERNALSYM DIK_N} DIK_M = $32; {$EXTERNALSYM DIK_M} DIK_COMMA = $33; {$EXTERNALSYM DIK_COMMA} DIK_PERIOD = $34; (* . on main keyboard *) {$EXTERNALSYM DIK_PERIOD} DIK_SLASH = $35; (* / on main keyboard *) {$EXTERNALSYM DIK_SLASH} DIK_RSHIFT = $36; {$EXTERNALSYM DIK_RSHIFT} DIK_MULTIPLY = $37; (* * on numeric keypad *) {$EXTERNALSYM DIK_MULTIPLY} DIK_LMENU = $38; (* left Alt *) {$EXTERNALSYM DIK_LMENU} DIK_SPACE = $39; {$EXTERNALSYM DIK_SPACE} DIK_CAPITAL = $3A; {$EXTERNALSYM DIK_CAPITAL} DIK_F1 = $3B; {$EXTERNALSYM DIK_F1} DIK_F2 = $3C; {$EXTERNALSYM DIK_F2} DIK_F3 = $3D; {$EXTERNALSYM DIK_F3} DIK_F4 = $3E; {$EXTERNALSYM DIK_F4} DIK_F5 = $3F; {$EXTERNALSYM DIK_F5} DIK_F6 = $40; {$EXTERNALSYM DIK_F6} DIK_F7 = $41; {$EXTERNALSYM DIK_F7} DIK_F8 = $42; {$EXTERNALSYM DIK_F8} DIK_F9 = $43; {$EXTERNALSYM DIK_F9} DIK_F10 = $44; {$EXTERNALSYM DIK_F10} DIK_NUMLOCK = $45; {$EXTERNALSYM DIK_NUMLOCK} DIK_SCROLL = $46; (* Scroll Lock *) {$EXTERNALSYM DIK_SCROLL} DIK_NUMPAD7 = $47; {$EXTERNALSYM DIK_NUMPAD7} DIK_NUMPAD8 = $48; {$EXTERNALSYM DIK_NUMPAD8} DIK_NUMPAD9 = $49; {$EXTERNALSYM DIK_NUMPAD9} DIK_SUBTRACT = $4A; (* - on numeric keypad *) {$EXTERNALSYM DIK_SUBTRACT} DIK_NUMPAD4 = $4B; {$EXTERNALSYM DIK_NUMPAD4} DIK_NUMPAD5 = $4C; {$EXTERNALSYM DIK_NUMPAD5} DIK_NUMPAD6 = $4D; {$EXTERNALSYM DIK_NUMPAD6} DIK_ADD = $4E; (* + on numeric keypad *) {$EXTERNALSYM DIK_ADD} DIK_NUMPAD1 = $4F; {$EXTERNALSYM DIK_NUMPAD1} DIK_NUMPAD2 = $50; {$EXTERNALSYM DIK_NUMPAD2} DIK_NUMPAD3 = $51; {$EXTERNALSYM DIK_NUMPAD3} DIK_NUMPAD0 = $52; {$EXTERNALSYM DIK_NUMPAD0} DIK_DECIMAL = $53; (* . on numeric keypad *) {$EXTERNALSYM DIK_DECIMAL} DIK_OEM_102 = $56; (* <> or \| on RT 102-key keyboard (Non-U.S.) *) {$EXTERNALSYM DIK_OEM_102} DIK_F11 = $57; {$EXTERNALSYM DIK_F11} DIK_F12 = $58; {$EXTERNALSYM DIK_F12} DIK_F13 = $64; (* (NEC PC98) *) {$EXTERNALSYM DIK_F13} DIK_F14 = $65; (* (NEC PC98) *) {$EXTERNALSYM DIK_F14} DIK_F15 = $66; (* (NEC PC98) *) {$EXTERNALSYM DIK_F15} DIK_KANA = $70; (* (Japanese keyboard) *) {$EXTERNALSYM DIK_KANA} DIK_ABNT_C1 = $73; (* /? on Brazilian keyboard *) {$EXTERNALSYM DIK_ABNT_C1} DIK_CONVERT = $79; (* (Japanese keyboard) *) {$EXTERNALSYM DIK_CONVERT} DIK_NOCONVERT = $7B; (* (Japanese keyboard) *) {$EXTERNALSYM DIK_NOCONVERT} DIK_YEN = $7D; (* (Japanese keyboard) *) {$EXTERNALSYM DIK_YEN} DIK_ABNT_C2 = $7E; (* Numpad . on Brazilian keyboard *) {$EXTERNALSYM DIK_ABNT_C2} DIK_NUMPADEQUALS = $8D; (* = on numeric keypad (NEC PC98) *) {$EXTERNALSYM DIK_NUMPADEQUALS} DIK_PREVTRACK = $90; (* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) *) {$EXTERNALSYM DIK_PREVTRACK} DIK_AT = $91; (* (NEC PC98) *) {$EXTERNALSYM DIK_AT} DIK_COLON = $92; (* (NEC PC98) *) {$EXTERNALSYM DIK_COLON} DIK_UNDERLINE = $93; (* (NEC PC98) *) {$EXTERNALSYM DIK_UNDERLINE} DIK_KANJI = $94; (* (Japanese keyboard) *) {$EXTERNALSYM DIK_KANJI} DIK_STOP = $95; (* (NEC PC98) *) {$EXTERNALSYM DIK_STOP} DIK_AX = $96; (* (Japan AX) *) {$EXTERNALSYM DIK_AX} DIK_UNLABELED = $97; (* (J3100) *) {$EXTERNALSYM DIK_UNLABELED} DIK_NEXTTRACK = $99; (* Next Track *) {$EXTERNALSYM DIK_NEXTTRACK} DIK_NUMPADENTER = $9C; (* Enter on numeric keypad *) {$EXTERNALSYM DIK_NUMPADENTER} DIK_RCONTROL = $9D; {$EXTERNALSYM DIK_RCONTROL} DIK_MUTE = $A0; (* Mute *) {$EXTERNALSYM DIK_MUTE} DIK_CALCULATOR = $A1; (* Calculator *) {$EXTERNALSYM DIK_CALCULATOR} DIK_PLAYPAUSE = $A2; (* Play / Pause *) {$EXTERNALSYM DIK_PLAYPAUSE} DIK_MEDIASTOP = $A4; (* Media Stop *) {$EXTERNALSYM DIK_MEDIASTOP} DIK_VOLUMEDOWN = $AE; (* Volume - *) {$EXTERNALSYM DIK_VOLUMEDOWN} DIK_VOLUMEUP = $B0; (* Volume + *) {$EXTERNALSYM DIK_VOLUMEUP} DIK_WEBHOME = $B2; (* Web home *) {$EXTERNALSYM DIK_WEBHOME} DIK_NUMPADCOMMA = $B3; (* , on numeric keypad (NEC PC98) *) {$EXTERNALSYM DIK_NUMPADCOMMA} DIK_DIVIDE = $B5; (* / on numeric keypad *) {$EXTERNALSYM DIK_DIVIDE} DIK_SYSRQ = $B7; {$EXTERNALSYM DIK_SYSRQ} DIK_RMENU = $B8; (* right Alt *) {$EXTERNALSYM DIK_RMENU} DIK_PAUSE = $C5; (* Pause *) {$EXTERNALSYM DIK_PAUSE} DIK_HOME = $C7; (* Home on arrow keypad *) {$EXTERNALSYM DIK_HOME} DIK_UP = $C8; (* UpArrow on arrow keypad *) {$EXTERNALSYM DIK_UP} DIK_PRIOR = $C9; (* PgUp on arrow keypad *) {$EXTERNALSYM DIK_PRIOR} DIK_LEFT = $CB; (* LeftArrow on arrow keypad *) {$EXTERNALSYM DIK_LEFT} DIK_RIGHT = $CD; (* RightArrow on arrow keypad *) {$EXTERNALSYM DIK_RIGHT} DIK_END = $CF; (* End on arrow keypad *) {$EXTERNALSYM DIK_END} DIK_DOWN = $D0; (* DownArrow on arrow keypad *) {$EXTERNALSYM DIK_DOWN} DIK_NEXT = $D1; (* PgDn on arrow keypad *) {$EXTERNALSYM DIK_NEXT} DIK_INSERT = $D2; (* Insert on arrow keypad *) {$EXTERNALSYM DIK_INSERT} DIK_DELETE = $D3; (* Delete on arrow keypad *) {$EXTERNALSYM DIK_DELETE} DIK_LWIN = $DB; (* Left Windows key *) {$EXTERNALSYM DIK_LWIN} DIK_RWIN = $DC; (* Right Windows key *) {$EXTERNALSYM DIK_RWIN} DIK_APPS = $DD; (* AppMenu key *) {$EXTERNALSYM DIK_APPS} DIK_POWER = $DE; (* System Power *) {$EXTERNALSYM DIK_POWER} DIK_SLEEP = $DF; (* System Sleep *) {$EXTERNALSYM DIK_SLEEP} DIK_WAKE = $E3; (* System Wake *) {$EXTERNALSYM DIK_WAKE} DIK_WEBSEARCH = $E5; (* Web Search *) {$EXTERNALSYM DIK_WEBSEARCH} DIK_WEBFAVORITES = $E6; (* Web Favorites *) {$EXTERNALSYM DIK_WEBFAVORITES} DIK_WEBREFRESH = $E7; (* Web Refresh *) {$EXTERNALSYM DIK_WEBREFRESH} DIK_WEBSTOP = $E8; (* Web Stop *) {$EXTERNALSYM DIK_WEBSTOP} DIK_WEBFORWARD = $E9; (* Web Forward *) {$EXTERNALSYM DIK_WEBFORWARD} DIK_WEBBACK = $EA; (* Web Back *) {$EXTERNALSYM DIK_WEBBACK} DIK_MYCOMPUTER = $EB; (* My Computer *) {$EXTERNALSYM DIK_MYCOMPUTER} DIK_MAIL = $EC; (* Mail *) {$EXTERNALSYM DIK_MAIL} DIK_MEDIASELECT = $ED; (* Media Select *) {$EXTERNALSYM DIK_MEDIASELECT} (* * Alternate names for keys, to facilitate transition from DOS. *) DIK_BACKSPACE = DIK_BACK; (* backspace *) {$EXTERNALSYM DIK_BACKSPACE} DIK_NUMPADSTAR = DIK_MULTIPLY; (* * on numeric keypad *) {$EXTERNALSYM DIK_NUMPADSTAR} DIK_LALT = DIK_LMENU; (* left Alt *) {$EXTERNALSYM DIK_LALT} DIK_CAPSLOCK = DIK_CAPITAL; (* CapsLock *) {$EXTERNALSYM DIK_CAPSLOCK} DIK_NUMPADMINUS = DIK_SUBTRACT; (* - on numeric keypad *) {$EXTERNALSYM DIK_NUMPADMINUS} DIK_NUMPADPLUS = DIK_ADD; (* + on numeric keypad *) {$EXTERNALSYM DIK_NUMPADPLUS} DIK_NUMPADPERIOD = DIK_DECIMAL; (* . on numeric keypad *) {$EXTERNALSYM DIK_NUMPADPERIOD} DIK_NUMPADSLASH = DIK_DIVIDE; (* / on numeric keypad *) {$EXTERNALSYM DIK_NUMPADSLASH} DIK_RALT = DIK_RMENU; (* right Alt *) {$EXTERNALSYM DIK_RALT} DIK_UPARROW = DIK_UP; (* UpArrow on arrow keypad *) {$EXTERNALSYM DIK_UPARROW} DIK_PGUP = DIK_PRIOR; (* PgUp on arrow keypad *) {$EXTERNALSYM DIK_PGUP} DIK_LEFTARROW = DIK_LEFT; (* LeftArrow on arrow keypad *) {$EXTERNALSYM DIK_LEFTARROW} DIK_RIGHTARROW = DIK_RIGHT; (* RightArrow on arrow keypad *) {$EXTERNALSYM DIK_RIGHTARROW} DIK_DOWNARROW = DIK_DOWN; (* DownArrow on arrow keypad *) {$EXTERNALSYM DIK_DOWNARROW} DIK_PGDN = DIK_NEXT; (* PgDn on arrow keypad *) {$EXTERNALSYM DIK_PGDN} (* * Alternate names for keys originally not used on US keyboards. *) DIK_CIRCUMFLEX = DIK_PREVTRACK; (* Japanese keyboard *) {$EXTERNALSYM DIK_CIRCUMFLEX} (**************************************************************************** * * Joystick * ****************************************************************************) type PDIJoyState = ^TDIJoyState; DIJOYSTATE = packed record lX: Longint; (* x-axis position *) lY: Longint; (* y-axis position *) lZ: Longint; (* z-axis position *) lRx: Longint; (* x-axis rotation *) lRy: Longint; (* y-axis rotation *) lRz: Longint; (* z-axis rotation *) rglSlider: array[0..1] of Longint; (* extra axes positions *) rgdwPOV: array[0..3] of DWORD; (* POV directions *) rgbButtons: array[0..31] of Byte; (* 32 buttons *) end; {$EXTERNALSYM DIJOYSTATE} TDIJoyState = DIJOYSTATE; PDIJoyState2 = ^TDIJoyState2; DIJOYSTATE2 = packed record lX: Longint; (* x-axis position *) lY: Longint; (* y-axis position *) lZ: Longint; (* z-axis position *) lRx: Longint; (* x-axis rotation *) lRy: Longint; (* y-axis rotation *) lRz: Longint; (* z-axis rotation *) rglSlider: array[0..1] of Longint; (* extra axes positions *) rgdwPOV: array[0..3] of DWORD; (* POV directions *) rgbButtons: array[0..127] of Byte; (* 128 buttons *) lVX: Longint; (* x-axis velocity *) lVY: Longint; (* y-axis velocity *) lVZ: Longint; (* z-axis velocity *) lVRx: Longint; (* x-axis angular velocity *) lVRy: Longint; (* y-axis angular velocity *) lVRz: Longint; (* z-axis angular velocity *) rglVSlider: array[0..1] of Longint; (* extra axes velocities *) lAX: Longint; (* x-axis acceleration *) lAY: Longint; (* y-axis acceleration *) lAZ: Longint; (* z-axis acceleration *) lARx: Longint; (* x-axis angular acceleration *) lARy: Longint; (* y-axis angular acceleration *) lARz: Longint; (* z-axis angular acceleration *) rglASlider: array[0..1] of Longint; (* extra axes accelerations *) lFX: Longint; (* x-axis force *) lFY: Longint; (* y-axis force *) lFZ: Longint; (* z-axis force *) lFRx: Longint; (* x-axis torque *) lFRy: Longint; (* y-axis torque *) lFRz: Longint; (* z-axis torque *) rglFSlider: array[0..1] of Longint; (* extra axes forces *) end; {$EXTERNALSYM DIJOYSTATE2} TDIJoyState2 = DIJOYSTATE2; const DIJOFS_X = 0; // FIELD_OFFSET(DIJOYSTATE, lX) {$EXTERNALSYM DIJOFS_X} DIJOFS_Y = 4; // FIELD_OFFSET(DIJOYSTATE, lY) {$EXTERNALSYM DIJOFS_Y} DIJOFS_Z = 8; // FIELD_OFFSET(DIJOYSTATE, lZ) {$EXTERNALSYM DIJOFS_Z} DIJOFS_RX = 12; // FIELD_OFFSET(DIJOYSTATE, lRx) {$EXTERNALSYM DIJOFS_RX} DIJOFS_RY = 16; // FIELD_OFFSET(DIJOYSTATE, lRy) {$EXTERNALSYM DIJOFS_RY} DIJOFS_RZ = 20; // FIELD_OFFSET(DIJOYSTATE, lRz) {$EXTERNALSYM DIJOFS_RZ} // #define DIJOFS_SLIDER(n) (FIELD_OFFSET(DIJOYSTATE, rglSlider) + \ // (n) * sizeof(LONG)) function DIJOFS_SLIDER(n: Cardinal): Cardinal; {$EXTERNALSYM DIJOFS_SLIDER} // #define DIJOFS_POV(n) (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + \ // (n) * sizeof(DWORD)) function DIJOFS_POV(n: Cardinal): Cardinal; {$EXTERNALSYM DIJOFS_POV} // #define DIJOFS_BUTTON(n) (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n)) function DIJOFS_BUTTON(n: Cardinal): Cardinal; {$EXTERNALSYM DIJOFS_BUTTON} const DIJOFS_BUTTON_ = 48; // Helper const DIJOFS_BUTTON0 = DIJOFS_BUTTON_ + 0; // DIJOFS_BUTTON(0) {$EXTERNALSYM DIJOFS_BUTTON0} DIJOFS_BUTTON1 = DIJOFS_BUTTON_ + 1; // DIJOFS_BUTTON(1) {$EXTERNALSYM DIJOFS_BUTTON1} DIJOFS_BUTTON2 = DIJOFS_BUTTON_ + 2; // DIJOFS_BUTTON(2) {$EXTERNALSYM DIJOFS_BUTTON2} DIJOFS_BUTTON3 = DIJOFS_BUTTON_ + 3; // DIJOFS_BUTTON(3) {$EXTERNALSYM DIJOFS_BUTTON3} DIJOFS_BUTTON4 = DIJOFS_BUTTON_ + 4; // DIJOFS_BUTTON(4) {$EXTERNALSYM DIJOFS_BUTTON4} DIJOFS_BUTTON5 = DIJOFS_BUTTON_ + 5; // DIJOFS_BUTTON(5) {$EXTERNALSYM DIJOFS_BUTTON5} DIJOFS_BUTTON6 = DIJOFS_BUTTON_ + 6; // DIJOFS_BUTTON(6) {$EXTERNALSYM DIJOFS_BUTTON6} DIJOFS_BUTTON7 = DIJOFS_BUTTON_ + 7; // DIJOFS_BUTTON(7) {$EXTERNALSYM DIJOFS_BUTTON7} DIJOFS_BUTTON8 = DIJOFS_BUTTON_ + 8; // DIJOFS_BUTTON(8) {$EXTERNALSYM DIJOFS_BUTTON8} DIJOFS_BUTTON9 = DIJOFS_BUTTON_ + 9; // DIJOFS_BUTTON(9) {$EXTERNALSYM DIJOFS_BUTTON9} DIJOFS_BUTTON10 = DIJOFS_BUTTON_ + 10; // DIJOFS_BUTTON(10) {$EXTERNALSYM DIJOFS_BUTTON10} DIJOFS_BUTTON11 = DIJOFS_BUTTON_ + 11; // DIJOFS_BUTTON(11) {$EXTERNALSYM DIJOFS_BUTTON11} DIJOFS_BUTTON12 = DIJOFS_BUTTON_ + 12; // DIJOFS_BUTTON(12) {$EXTERNALSYM DIJOFS_BUTTON12} DIJOFS_BUTTON13 = DIJOFS_BUTTON_ + 13; // DIJOFS_BUTTON(13) {$EXTERNALSYM DIJOFS_BUTTON13} DIJOFS_BUTTON14 = DIJOFS_BUTTON_ + 14; // DIJOFS_BUTTON(14) {$EXTERNALSYM DIJOFS_BUTTON14} DIJOFS_BUTTON15 = DIJOFS_BUTTON_ + 15; // DIJOFS_BUTTON(15) {$EXTERNALSYM DIJOFS_BUTTON15} DIJOFS_BUTTON16 = DIJOFS_BUTTON_ + 16; // DIJOFS_BUTTON(16) {$EXTERNALSYM DIJOFS_BUTTON16} DIJOFS_BUTTON17 = DIJOFS_BUTTON_ + 17; // DIJOFS_BUTTON(17) {$EXTERNALSYM DIJOFS_BUTTON17} DIJOFS_BUTTON18 = DIJOFS_BUTTON_ + 18; // DIJOFS_BUTTON(18) {$EXTERNALSYM DIJOFS_BUTTON18} DIJOFS_BUTTON19 = DIJOFS_BUTTON_ + 19; // DIJOFS_BUTTON(19) {$EXTERNALSYM DIJOFS_BUTTON19} DIJOFS_BUTTON20 = DIJOFS_BUTTON_ + 20; // DIJOFS_BUTTON(20) {$EXTERNALSYM DIJOFS_BUTTON20} DIJOFS_BUTTON21 = DIJOFS_BUTTON_ + 21; // DIJOFS_BUTTON(21) {$EXTERNALSYM DIJOFS_BUTTON21} DIJOFS_BUTTON22 = DIJOFS_BUTTON_ + 22; // DIJOFS_BUTTON(22) {$EXTERNALSYM DIJOFS_BUTTON22} DIJOFS_BUTTON23 = DIJOFS_BUTTON_ + 23; // DIJOFS_BUTTON(23) {$EXTERNALSYM DIJOFS_BUTTON23} DIJOFS_BUTTON24 = DIJOFS_BUTTON_ + 24; // DIJOFS_BUTTON(24) {$EXTERNALSYM DIJOFS_BUTTON24} DIJOFS_BUTTON25 = DIJOFS_BUTTON_ + 25; // DIJOFS_BUTTON(25) {$EXTERNALSYM DIJOFS_BUTTON25} DIJOFS_BUTTON26 = DIJOFS_BUTTON_ + 26; // DIJOFS_BUTTON(26) {$EXTERNALSYM DIJOFS_BUTTON26} DIJOFS_BUTTON27 = DIJOFS_BUTTON_ + 27; // DIJOFS_BUTTON(27) {$EXTERNALSYM DIJOFS_BUTTON27} DIJOFS_BUTTON28 = DIJOFS_BUTTON_ + 28; // DIJOFS_BUTTON(28) {$EXTERNALSYM DIJOFS_BUTTON28} DIJOFS_BUTTON29 = DIJOFS_BUTTON_ + 29; // DIJOFS_BUTTON(29) {$EXTERNALSYM DIJOFS_BUTTON29} DIJOFS_BUTTON30 = DIJOFS_BUTTON_ + 30; // DIJOFS_BUTTON(30) {$EXTERNALSYM DIJOFS_BUTTON30} DIJOFS_BUTTON31 = DIJOFS_BUTTON_ + 31; // DIJOFS_BUTTON(31) {$EXTERNALSYM DIJOFS_BUTTON31} const rgodfDIMouse: array[0..6] of TDIObjectDataFormat = ( (pguid: @GUID_XAxis; dwOfs: DIMOFS_X; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: @GUID_YAxis; dwOfs: DIMOFS_Y; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: @GUID_ZAxis; dwOfs: DIMOFS_Z; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON0; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON2; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON3; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0) ); {$EXTERNALSYM rgodfDIMouse} c_dfDIMouse: TDIDataFormat = ( dwSize: Sizeof(c_dfDIMouse); // $18 dwObjSize: Sizeof(TDIObjectDataFormat); // $10 dwFlags: DIDF_RELAXIS; // $2 dwDataSize: Sizeof(TDIMouseState); // $10 dwNumObjs: High(rgodfDIMouse) + 1; rgodf: @rgodfDIMouse ); {$EXTERNALSYM c_dfDIMouse} {$IFDEF DIRECTINPUT_VERSION_7} (* #if(DIRECTINPUT_VERSION >= 0x0700) *) rgodfDIMouse2: array[0..10] of TDIObjectDataFormat = ( (pguid: @GUID_XAxis; dwOfs: DIMOFS_X; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: @GUID_YAxis; dwOfs: DIMOFS_Y; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: @GUID_ZAxis; dwOfs: DIMOFS_Z; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), // DIDFT_ENUMCOLLECTION(DIDFT_ALIAS) == $80000000 (pguid: nil; dwOfs: DIMOFS_BUTTON0; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON2; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON3; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON4; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON5; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON6; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIMOFS_BUTTON7; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0) ); {$EXTERNALSYM rgodfDIMouse2} c_dfDIMouse2: TDIDataFormat = ( dwSize : Sizeof(c_dfDIMouse2); // $18 dwObjSize : Sizeof(TDIObjectDataFormat); // $10 dwFlags : DIDF_RELAXIS; // $2 dwDataSize : Sizeof(TDIMouseState2); // $10 dwNumObjs : High(rgodfDIMouse2) + 1; rgodf : @rgodfDIMouse2 ); {$EXTERNALSYM c_dfDIMouse2} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) const rgodfKeyboard: array[0..255] of TDIObjectDataFormat = ( (pguid: @GUID_Key; dwOfs: 0; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 0 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 1; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 1 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 2; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 2 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 3; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 3 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 4; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 4 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 5; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 5 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 6; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 6 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 7; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 7 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 8; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 8 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 9; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 9 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 10; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 10 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 11; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 11 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 12; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 12 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 13; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 13 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 14; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 14 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 15; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 15 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 16; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 16 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 17; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 17 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 18; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 18 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 19; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 19 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 20; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 20 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 21; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 21 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 22; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 22 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 23; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 23 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 24; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 24 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 25; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 25 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 26; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 26 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 27; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 27 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 28; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 28 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 29; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 29 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 30; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 30 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 31; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 31 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 32; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 32 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 33; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 33 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 34; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 34 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 35; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 35 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 36; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 36 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 37; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 37 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 38; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 38 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 39; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 39 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 40; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 40 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 41; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 41 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 42; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 42 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 43; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 43 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 44; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 44 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 45; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 45 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 46; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 46 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 47; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 47 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 48; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 48 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 49; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 49 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 50; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 50 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 51; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 51 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 52; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 52 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 53; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 53 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 54; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 54 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 55; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 55 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 56; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 56 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 57; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 57 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 58; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 58 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 59; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 59 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 60; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 60 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 61; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 61 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 62; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 62 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 63; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 63 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 64; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 64 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 65; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 65 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 66; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 66 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 67; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 67 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 68; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 68 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 69; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 69 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 70; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 70 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 71; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 71 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 72; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 72 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 73; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 73 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 74; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 74 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 75; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 75 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 76; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 76 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 77; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 77 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 78; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 78 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 79; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 79 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 80; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 80 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 81; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 81 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 82; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 82 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 83; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 83 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 84; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 84 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 85; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 85 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 86; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 86 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 87; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 87 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 88; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 88 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 89; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 89 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 90; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 90 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 91; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 91 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 92; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 92 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 93; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 93 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 94; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 94 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 95; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 95 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 96; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 96 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 97; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 97 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 98; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 98 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 99; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or ( 99 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 100; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (100 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 101; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (101 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 102; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (102 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 103; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (103 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 104; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (104 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 105; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (105 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 106; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (106 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 107; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (107 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 108; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (108 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 109; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (109 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 110; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (110 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 111; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (111 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 112; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (112 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 113; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (113 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 114; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (114 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 115; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (115 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 116; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (116 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 117; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (117 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 118; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (118 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 119; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (119 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 120; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (120 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 121; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (121 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 122; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (122 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 123; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (123 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 124; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (124 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 125; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (125 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 126; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (126 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 127; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (127 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 128; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (128 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 129; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (129 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 130; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (130 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 131; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (131 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 132; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (132 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 133; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (133 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 134; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (134 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 135; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (135 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 136; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (136 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 137; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (137 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 138; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (138 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 139; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (139 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 140; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (140 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 141; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (141 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 142; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (142 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 143; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (143 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 144; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (144 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 145; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (145 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 146; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (146 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 147; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (147 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 148; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (148 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 149; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (149 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 150; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (150 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 151; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (151 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 152; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (152 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 153; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (153 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 154; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (154 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 155; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (155 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 156; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (156 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 157; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (157 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 158; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (158 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 159; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (159 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 160; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (160 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 161; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (161 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 162; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (162 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 163; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (163 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 164; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (164 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 165; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (165 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 166; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (166 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 167; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (167 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 168; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (168 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 169; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (169 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 170; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (170 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 171; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (171 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 172; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (172 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 173; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (173 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 174; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (174 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 175; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (175 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 176; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (176 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 177; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (177 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 178; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (178 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 179; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (179 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 180; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (180 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 181; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (181 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 182; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (182 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 183; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (183 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 184; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (184 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 185; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (185 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 186; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (186 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 187; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (187 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 188; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (188 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 189; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (189 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 190; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (190 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 191; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (191 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 192; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (192 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 193; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (193 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 194; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (194 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 195; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (195 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 196; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (196 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 197; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (197 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 198; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (198 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 199; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (199 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 200; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (200 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 201; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (201 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 202; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (202 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 203; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (203 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 204; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (204 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 205; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (205 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 206; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (206 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 207; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (207 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 208; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (208 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 209; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (209 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 210; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (210 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 211; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (211 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 212; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (212 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 213; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (213 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 214; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (214 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 215; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (215 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 216; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (216 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 217; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (217 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 218; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (218 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 219; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (219 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 220; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (220 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 221; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (221 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 222; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (222 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 223; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (223 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 224; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (224 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 225; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (225 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 226; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (226 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 227; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (227 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 228; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (228 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 229; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (229 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 230; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (230 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 231; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (231 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 232; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (232 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 233; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (233 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 234; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (234 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 235; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (235 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 236; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (236 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 237; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (237 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 238; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (238 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 239; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (239 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 240; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (240 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 241; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (241 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 242; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (242 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 243; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (243 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 244; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (244 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 245; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (245 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 246; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (246 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 247; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (247 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 248; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (248 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 249; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (249 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 250; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (250 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 251; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (251 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 252; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (252 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 253; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (253 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 254; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (254 shl 8); dwFlags: 0), (pguid: @GUID_Key; dwOfs: 255; dwType: DIDFT_BUTTON or DIPROPRANGE_NOMIN or (255 shl 8); dwFlags: 0) ); {$EXTERNALSYM rgodfKeyboard} const c_dfDIKeyboard: TDIDataFormat = ( dwSize : Sizeof(c_dfDIKeyboard); dwObjSize : Sizeof(TDIObjectDataFormat); dwFlags : DIDF_RELAXIS; dwDataSize : 256; dwNumObjs : High(rgodfKeyboard) + 1; rgodf : @rgodfKeyboard ); {$EXTERNALSYM c_dfDIKeyboard} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) rgodfJoystick: array[0..43] of TDIObjectDataFormat = ( (pguid: @GUID_XAxis; dwOfs: DIJOFS_X; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_YAxis; dwOfs: DIJOFS_Y; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_ZAxis; dwOfs: DIJOFS_Z; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RxAxis; dwOfs: DIJOFS_RX; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RyAxis; dwOfs: DIJOFS_RY; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RzAxis; dwOfs: DIJOFS_RZ; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), // 2 Sliders (pguid: @GUID_Slider; dwOfs: 24; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_Slider; dwOfs: 28; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), // 4 POVs (yes, really) (pguid: @GUID_POV; dwOfs: 32; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 36; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 40; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 44; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), // Buttons (pguid: nil; dwOfs: DIJOFS_BUTTON0; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON2; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON3; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON4; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON5; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON6; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON7; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON8; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON9; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON10; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON11; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON12; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON13; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON14; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON15; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON16; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON17; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON18; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON19; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON20; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON21; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON22; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON23; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON24; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON25; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON26; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON27; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON28; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON29; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON30; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON31; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0) ); {$EXTERNALSYM rgodfJoystick} c_dfDIJoystick: TDIDataFormat = ( dwSize : Sizeof(c_dfDIJoystick); dwObjSize : Sizeof(TDIObjectDataFormat); // $10 dwFlags : DIDF_ABSAXIS; dwDataSize : SizeOf(TDIJoyState); // $10 dwNumObjs : High(rgodfJoystick) + 1; // $2C rgodf : @rgodfJoystick ); {$EXTERNALSYM c_dfDIJoystick} rgodfJoystick2: array[0..163] of TDIObjectDataFormat = ( (pguid: @GUID_XAxis; dwOfs: DIJOFS_X; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_YAxis; dwOfs: DIJOFS_Y; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_ZAxis; dwOfs: DIJOFS_Z; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RxAxis; dwOfs: DIJOFS_RX; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RyAxis; dwOfs: DIJOFS_RY; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_RzAxis; dwOfs: DIJOFS_RZ; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), // 2 Sliders (pguid: @GUID_Slider; dwOfs: 24; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), (pguid: @GUID_Slider; dwOfs: 28; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTPOSITION), // 4 POVs (yes, really) (pguid: @GUID_POV; dwOfs: 32; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 36; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 40; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: @GUID_POV; dwOfs: 44; dwType: DIDFT_POV or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), // Buttons (pguid: nil; dwOfs: DIJOFS_BUTTON0; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON2; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON3; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON4; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON5; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON6; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON7; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON8; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON9; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON10; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON11; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON12; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON13; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON14; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON15; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON16; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON17; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON18; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON19; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON20; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON21; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON22; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON23; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON24; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON25; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON26; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON27; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON28; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON29; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON30; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: DIJOFS_BUTTON31; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: 0), (pguid: nil; dwOfs: 80; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 81; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 82; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 83; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 84; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 85; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 86; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 87; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 88; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 89; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 90; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 91; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 92; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 93; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 94; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 95; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 96; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 97; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 98; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 99; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 100; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 101; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 102; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 103; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 104; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 105; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 106; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 107; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 108; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 109; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 110; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 111; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 112; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 113; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 114; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 115; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 116; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 117; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 118; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 119; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 120; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 121; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 122; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 123; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 124; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 125; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 126; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 127; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 128; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 129; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 130; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 131; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 132; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 133; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 134; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 135; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 136; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 137; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 138; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 139; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 140; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 141; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 142; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 143; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 144; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 145; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 146; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 147; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 148; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 149; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 150; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 151; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 152; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 153; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 154; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 155; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 156; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 157; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 158; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 159; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 160; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 161; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 162; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 163; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 164; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 165; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 166; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 167; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 168; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 169; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 170; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 171; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 172; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 173; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 174; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: nil; dwOfs: 175; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE or $80000000; dwFlags: $0), (pguid: @GUID_XAxis; dwOfs: 176; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_YAxis; dwOfs: 180; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_ZAxis; dwOfs: 184; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_RxAxis; dwOfs: 188; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_RyAxis; dwOfs: 192; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_RzAxis; dwOfs: 196; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_Slider; dwOfs: 24; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_Slider; dwOfs: 28; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTVELOCITY), (pguid: @GUID_XAxis; dwOfs: 208; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_YAxis; dwOfs: 212; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_ZAxis; dwOfs: 216; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_RxAxis; dwOfs: 220; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_RyAxis; dwOfs: 224; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_RzAxis; dwOfs: 228; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_Slider; dwOfs: 24; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_Slider; dwOfs: 28; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTACCEL), (pguid: @GUID_XAxis; dwOfs: 240; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_YAxis; dwOfs: 244; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_ZAxis; dwOfs: 248; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_RxAxis; dwOfs: 252; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_RyAxis; dwOfs: 256; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_RzAxis; dwOfs: 260; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_Slider; dwOfs: 24; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE), (pguid: @GUID_Slider; dwOfs: 28; dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE or $80000000; dwFlags: DIDOI_ASPECTFORCE) ); {$EXTERNALSYM rgodfJoystick2} c_dfDIJoystick2: TDIDataFormat = ( dwSize : Sizeof(c_dfDIJoystick2); dwObjSize : Sizeof(TDIObjectDataFormat); dwFlags : DIDF_ABSAXIS; dwDataSize : SizeOf(TDIJoyState2); dwNumObjs : High(rgodfJoystick2) + 1; rgodf : @rgodfJoystick2 ); {$EXTERNALSYM c_dfDIJoystick2} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) (**************************************************************************** * * IDirectInput * ****************************************************************************) const DIENUM_STOP = BOOL(0); {$EXTERNALSYM DIENUM_STOP} DIENUM_CONTINUE = BOOL(1); {$EXTERNALSYM DIENUM_CONTINUE} type TDIEnumDevicesCallbackA = function (var lpddi: TDIDeviceInstanceA; pvRef: Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDevicesCallbackA} TDIEnumDevicesCallbackW = function (var lpddi: TDIDeviceInstanceW; pvRef: Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDevicesCallbackW} TDIEnumDevicesCallback = TDIEnumDevicesCallbackA; {$EXTERNALSYM TDIEnumDevicesCallback} TDIConfigureDevicesCallback = function (lpDDSTarget: IUnknown; pvRef: Pointer): BOOL; stdcall; const DIEDFL_ALLDEVICES = $00000000; {$EXTERNALSYM DIEDFL_ALLDEVICES} DIEDFL_ATTACHEDONLY = $00000001; {$EXTERNALSYM DIEDFL_ATTACHEDONLY} {$IFDEF DIRECTINPUT_VERSION_5} (* #if(DIRECTINPUT_VERSION >= 0x0500) *) DIEDFL_FORCEFEEDBACK = $00000100; {$EXTERNALSYM DIEDFL_FORCEFEEDBACK} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0500 *) {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) DIEDFL_INCLUDEALIASES = $00010000; {$EXTERNALSYM DIEDFL_INCLUDEALIASES} DIEDFL_INCLUDEPHANTOMS = $00020000; {$EXTERNALSYM DIEDFL_INCLUDEPHANTOMS} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) DIEDFL_INCLUDEHIDDEN = $00040000; {$EXTERNALSYM DIEDFL_INCLUDEHIDDEN} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) type TDIEnumDevicesBySemanticsCallbackA = function (var lpddi: TDIDeviceInstanceA; lpdid: IDirectInputDevice8A; dwFlags, dwRemaining: DWORD; pvRef: Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDevicesBySemanticsCallbackA} TDIEnumDevicesBySemanticsCallbackW = function (var lpddi: TDIDeviceInstanceW; lpdid: IDirectInputDevice8W; dwFlags, dwRemaining: DWORD; pvRef: Pointer): BOOL; stdcall; {$EXTERNALSYM TDIEnumDevicesBySemanticsCallbackW} TDIEnumDevicesBySemanticsCallback = TDIEnumDevicesBySemanticsCallbackA; {$EXTERNALSYM TDIEnumDevicesBySemanticsCallback} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) const DIEDBS_MAPPEDPRI1 = $00000001; {$EXTERNALSYM DIEDBS_MAPPEDPRI1} DIEDBS_MAPPEDPRI2 = $00000002; {$EXTERNALSYM DIEDBS_MAPPEDPRI2} DIEDBS_RECENTDEVICE = $00000010; {$EXTERNALSYM DIEDBS_RECENTDEVICE} DIEDBS_NEWDEVICE = $00000020; {$EXTERNALSYM DIEDBS_NEWDEVICE} DIEDBSFL_ATTACHEDONLY = $00000000; {$EXTERNALSYM DIEDBSFL_ATTACHEDONLY} DIEDBSFL_THISUSER = $00000010; {$EXTERNALSYM DIEDBSFL_THISUSER} DIEDBSFL_FORCEFEEDBACK = DIEDFL_FORCEFEEDBACK; {$EXTERNALSYM DIEDBSFL_FORCEFEEDBACK} DIEDBSFL_AVAILABLEDEVICES = $00001000; {$EXTERNALSYM DIEDBSFL_AVAILABLEDEVICES} DIEDBSFL_MULTIMICEKEYBOARDS = $00002000; {$EXTERNALSYM DIEDBSFL_MULTIMICEKEYBOARDS} DIEDBSFL_NONGAMINGDEVICES = $00004000; {$EXTERNALSYM DIEDBSFL_NONGAMINGDEVICES} DIEDBSFL_VALID = $00007110; {$EXTERNALSYM DIEDBSFL_VALID} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) type {$EXTERNALSYM IDirectInputA} IDirectInputA = interface(IUnknown) [SID_IDirectInputA] (*** IDirectInputA methods ***) function CreateDevice(const rguid: TGUID; out lplpDirectInputDevice: IDirectInputDeviceA; pUnkOuter: IUnknown): HResult; stdcall; function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackA; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInputW} IDirectInputW = interface(IUnknown) [SID_IDirectInputW] (*** IDirectInputW methods ***) function CreateDevice(const rguid: TGUID; out lplpDirectInputDevice: IDirectInputDeviceW; pUnkOuter: IUnknown): HResult; stdcall; function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackW; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; end; {$EXTERNALSYM IDirectInput} IDirectInput = IDirectInputA; type IID_IDirectInput = IDirectInput; {$EXTERNALSYM IID_IDirectInput} type {$EXTERNALSYM IDirectInput2A} IDirectInput2A = interface(IDirectInputA) [SID_IDirectInput2A] (*** IDirectInput2A methods ***) function FindDevice(const rguidClass: TGUID; ptszName: PAnsiChar; out pguidInstance: TGUID): HResult; stdcall; end; {$EXTERNALSYM IDirectInput2W} IDirectInput2W = interface(IDirectInputW) [SID_IDirectInput2W] (*** IDirectInput2W methods ***) function FindDevice(const rguidClass: TGUID; ptszName: PWideChar; out pguidInstance: TGUID): HResult; stdcall; end; {$EXTERNALSYM IDirectInput2} IDirectInput2 = IDirectInput2A; type IID_IDirectInput2 = IDirectInput2; {$EXTERNALSYM IID_IDirectInput2} type {$EXTERNALSYM IDirectInput7A} IDirectInput7A = interface(IDirectInput2A) [SID_IDirectInput7A] (*** IDirectInput7A methods ***) function CreateDeviceEx(const rguid, riid: TGUID; out pvOut: Pointer; pUnkOuter: IUnknown) : HResult; stdcall; end; {$EXTERNALSYM IDirectInput7W} IDirectInput7W = interface(IDirectInput2W) [SID_IDirectInput7W] (*** IDirectInput7W methods ***) function CreateDeviceEx(const rguid, riid: TGUID; out pvOut: Pointer; pUnkOuter: IUnknown) : HResult; stdcall; end; {$EXTERNALSYM IDirectInput7} IDirectInput7 = IDirectInput7A; type IID_IDirectInput7 = IDirectInput7; {$EXTERNALSYM IID_IDirectInput7} {$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION >= 0x0800) *) type {$EXTERNALSYM IDirectInput8A} IDirectInput8A = interface(IUnknown) [SID_IDirectInput8A] (*** IDirectInput8A methods ***) function CreateDevice(const rguid: TGUID; out lplpDirectInputDevice: IDirectInputDevice8A; pUnkOuter: IUnknown): HResult; stdcall; function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackA; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; function FindDevice(const rguidClass: TGUID; ptszName: PAnsiChar; out pguidInstance: TGUID): HResult; stdcall; function EnumDevicesBySemantics(ptszUserName: PAnsiChar; const lpdiActionFormat: TDIActionFormatA; lpCallback: TDIEnumDevicesBySemanticsCallbackA; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function ConfigureDevices(lpdiCallback: TDIConfigureDevicesCallback; const lpdiCDParams: TDIConfigureDevicesParamsA; dwFlags: DWORD; pvRefData: Pointer): HResult; stdcall; end; {$EXTERNALSYM IDirectInput8W} IDirectInput8W = interface(IUnknown) [SID_IDirectInput8W] (*** IDirectInput8W methods ***) function CreateDevice(const rguid: TGUID; out lplpDirectInputDevice: IDirectInputDevice8W; pUnkOuter: IUnknown): HResult; stdcall; function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackW; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; function FindDevice(const rguidClass: TGUID; ptszName: PWideChar; out pguidInstance: TGUID): HResult; stdcall; function EnumDevicesBySemantics(ptszUserName: PWideChar; const lpdiActionFormat: TDIActionFormatW; lpCallback: TDIEnumDevicesBySemanticsCallbackW; pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; function ConfigureDevices(lpdiCallback: TDIConfigureDevicesCallback; const lpdiCDParams: TDIConfigureDevicesParamsW; dwFlags: DWORD; pvRefData: Pointer): HResult; stdcall; end; {$EXTERNALSYM IDirectInput8} IDirectInput8 = IDirectInput8A; type IID_IDirectInput8 = IDirectInput8; {$EXTERNALSYM IID_IDirectInput8} {$ENDIF} (* DIRECTINPUT_VERSION >= 0x0800 *) const DirectInputDll = 'dinput.dll'; DirectInput8Dll = 'dinput8.dll'; function DirectInputLoaded: Boolean; function UnLoadDirectInput: Boolean; function LoadDirectInput: Boolean; {$IFDEF DIRECTINPUT_DYNAMIC_LINK} //{$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION > 0x0700) *) var DirectInput8Create: function(hinst: THandle; dwVersion: Cardinal; const riidltf: TGUID; out ppvOut; punkOuter: IUnknown): HResult; stdcall; {$EXTERNALSYM DirectInput8Create} //{$ELSE} DirectInputCreateA: function(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; {$EXTERNALSYM DirectInputCreateA} DirectInputCreateW: function(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInputW; punkOuter: IUnknown): HResult; stdcall; {$EXTERNALSYM DirectInputCreateW} DirectInputCreate: function(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInput; punkOuter: IUnknown): HResult; stdcall; {$EXTERNALSYM DirectInputCreate} DirectInputCreateEx: function(hinst : THandle; dwVersion: DWORD; const riidltf: TGUID; out ppvOut; punkOuter: IUnknown): HResult; stdcall; {$EXTERNALSYM DirectInputCreateEx} //{$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) {$ELSE} //{$IFDEF DIRECTINPUT_VERSION_8} (* #if(DIRECTINPUT_VERSION > 0x0700) *) function DirectInput8Create(hinst: THandle; dwVersion: DWORD; const riidltf: TGUID; out ppvOut{: Pointer}; punkOuter: IUnknown): HResult; stdcall; external DirectInput8Dll; {$EXTERNALSYM DirectInput8Create} //{$ELSE} function DirectInputCreateA(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; external DirectInputDll name 'DirectInputCreateA'; {$EXTERNALSYM DirectInputCreateA} function DirectInputCreateW(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInputW; punkOuter: IUnknown): HResult; stdcall; external DirectInputDll name 'DirectInputCreateW'; {$EXTERNALSYM DirectInputCreateW} function DirectInputCreate(hinst: THandle; dwVersion: DWORD; out ppDI: IDirectInput; punkOuter: IUnknown): HResult; stdcall; external DirectInputDll name 'DirectInputCreateA'; {$EXTERNALSYM DirectInputCreate} function DirectInputCreateEx(hinst: THandle; dwVersion: DWORD; const riidltf: TGUID; out ppvOut{: Pointer}; punkOuter: IUnknown): HResult; stdcall; external DirectInputDll; {$EXTERNALSYM DirectInputCreateEx} //{$ENDIF} (* DIRECTINPUT_VERSION >= 0x0700 *) {$ENDIF} (**************************************************************************** * * Return Codes * ****************************************************************************) const (* * The operation completed successfully. *) DI_OK = S_OK; {$EXTERNALSYM DI_OK} (* * The device exists but is not currently attached. *) DI_NOTATTACHED = S_FALSE; {$EXTERNALSYM DI_NOTATTACHED} (* * The device buffer overflowed. Some input was lost. *) DI_BUFFEROVERFLOW = S_FALSE; {$EXTERNALSYM DI_BUFFEROVERFLOW} (* * The change in device properties had no effect. *) DI_PROPNOEFFECT = S_FALSE; {$EXTERNALSYM DI_PROPNOEFFECT} (* * The operation had no effect. *) DI_NOEFFECT = S_FALSE; {$EXTERNALSYM DI_NOEFFECT} (* * The device is a polled device. As a result, device buffering * will not collect any data and event notifications will not be * signalled until GetDeviceState is called. *) DI_POLLEDDEVICE = HRESULT($00000002); {$EXTERNALSYM DI_POLLEDDEVICE} (* * The parameters of the effect were successfully updated by * IDirectInputEffect::SetParameters, but the effect was not * downloaded because the device is not exclusively acquired * or because the DIEP_NODOWNLOAD flag was passed. *) DI_DOWNLOADSKIPPED = HRESULT($00000003); {$EXTERNALSYM DI_DOWNLOADSKIPPED} (* * The parameters of the effect were successfully updated by * IDirectInputEffect::SetParameters, but in order to change * the parameters, the effect needed to be restarted. *) DI_EFFECTRESTARTED = HRESULT($00000004); {$EXTERNALSYM DI_EFFECTRESTARTED} (* * The parameters of the effect were successfully updated by * IDirectInputEffect::SetParameters, but some of them were * beyond the capabilities of the device and were truncated. *) DI_TRUNCATED = HRESULT($00000008); {$EXTERNALSYM DI_TRUNCATED} (* * The settings have been successfully applied but could not be * persisted. *) DI_SETTINGSNOTSAVED = HRESULT($0000000B); {$EXTERNALSYM DI_SETTINGSNOTSAVED} (* * Equal to DI_EFFECTRESTARTED | DI_TRUNCATED. *) DI_TRUNCATEDANDRESTARTED = HRESULT($0000000C); {$EXTERNALSYM DI_TRUNCATEDANDRESTARTED} (* * A SUCCESS code indicating that settings cannot be modified. *) DI_WRITEPROTECT = HRESULT($00000013); {$EXTERNALSYM DI_WRITEPROTECT} SEVERITY_ERROR_FACILITY_WIN32 = HResult(SEVERITY_ERROR shl 31) or HResult(FACILITY_WIN32 shl 16); {$EXTERNALSYM SEVERITY_ERROR_FACILITY_WIN32} (* * The application requires a newer version of DirectInput. *) DIERR_OLDDIRECTINPUTVERSION = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_OLD_WIN_VERSION); {$EXTERNALSYM DIERR_OLDDIRECTINPUTVERSION} (* * The application was written for an unsupported prerelease version * of DirectInput. *) DIERR_BETADIRECTINPUTVERSION = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_RMODE_APP); {$EXTERNALSYM DIERR_BETADIRECTINPUTVERSION} (* * The object could not be created due to an incompatible driver version * or mismatched or incomplete driver components. *) DIERR_BADDRIVERVER = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_BAD_DRIVER_LEVEL); {$EXTERNALSYM DIERR_BADDRIVERVER} (* * The device or device instance or effect is not registered with DirectInput. *) DIERR_DEVICENOTREG = REGDB_E_CLASSNOTREG; {$EXTERNALSYM DIERR_DEVICENOTREG} (* * The requested object does not exist. *) DIERR_NOTFOUND = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_FILE_NOT_FOUND); {$EXTERNALSYM DIERR_NOTFOUND} (* * The requested object does not exist. *) DIERR_OBJECTNOTFOUND = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_FILE_NOT_FOUND); {$EXTERNALSYM DIERR_OBJECTNOTFOUND} (* * An invalid parameter was passed to the returning function, * or the object was not in a state that admitted the function * to be called. *) DIERR_INVALIDPARAM = E_INVALIDARG; {$EXTERNALSYM DIERR_INVALIDPARAM} (* * The specified interface is not supported by the object *) DIERR_NOINTERFACE = E_NOINTERFACE; {$EXTERNALSYM DIERR_NOINTERFACE} (* * An undetermined error occured inside the DInput subsystem *) DIERR_GENERIC = E_FAIL; {$EXTERNALSYM DIERR_GENERIC} (* * The DInput subsystem couldn't allocate sufficient memory to complete the * caller's request. *) DIERR_OUTOFMEMORY = E_OUTOFMEMORY; {$EXTERNALSYM DIERR_OUTOFMEMORY} (* * The function called is not supported at this time *) DIERR_UNSUPPORTED = E_NOTIMPL; {$EXTERNALSYM DIERR_UNSUPPORTED} (* * This object has not been initialized *) DIERR_NOTINITIALIZED = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_NOT_READY); {$EXTERNALSYM DIERR_NOTINITIALIZED} (* * This object is already initialized *) DIERR_ALREADYINITIALIZED = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_ALREADY_INITIALIZED); {$EXTERNALSYM DIERR_ALREADYINITIALIZED} (* * This object does not support aggregation *) DIERR_NOAGGREGATION = CLASS_E_NOAGGREGATION; {$EXTERNALSYM DIERR_NOAGGREGATION} (* * Another app has a higher priority level, preventing this call from * succeeding. *) DIERR_OTHERAPPHASPRIO = E_ACCESSDENIED; {$EXTERNALSYM DIERR_OTHERAPPHASPRIO} (* * Access to the device has been lost. It must be re-acquired. *) DIERR_INPUTLOST = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_READ_FAULT); {$EXTERNALSYM DIERR_INPUTLOST} (* * The operation cannot be performed while the device is acquired. *) DIERR_ACQUIRED = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_BUSY); {$EXTERNALSYM DIERR_ACQUIRED} (* * The operation cannot be performed unless the device is acquired. *) DIERR_NOTACQUIRED = HRESULT(SEVERITY_ERROR_FACILITY_WIN32 or ERROR_INVALID_ACCESS); {$EXTERNALSYM DIERR_NOTACQUIRED} (* * The specified property cannot be changed. *) DIERR_READONLY = E_ACCESSDENIED; {$EXTERNALSYM DIERR_READONLY} (* * The device already has an event notification associated with it. *) DIERR_HANDLEEXISTS = E_ACCESSDENIED; {$EXTERNALSYM DIERR_HANDLEEXISTS} (* * Data is not yet available. *) E_PENDING = $8000000A; {$EXTERNALSYM E_PENDING} (* * Unable to IDirectInputJoyConfig_Acquire because the user * does not have sufficient privileges to change the joystick * configuration. *) DIERR_INSUFFICIENTPRIVS = $80040200; {$EXTERNALSYM DIERR_INSUFFICIENTPRIVS} (* * The device is full. *) DIERR_DEVICEFULL = $80040201; {$EXTERNALSYM DIERR_DEVICEFULL} (* * Not all the requested information fit into the buffer. *) DIERR_MOREDATA = $80040202; {$EXTERNALSYM DIERR_MOREDATA} (* * The effect is not downloaded. *) DIERR_NOTDOWNLOADED = $80040203; {$EXTERNALSYM DIERR_NOTDOWNLOADED} (* * The device cannot be reinitialized because there are still effects * attached to it. *) DIERR_HASEFFECTS = $80040204; {$EXTERNALSYM DIERR_HASEFFECTS} (* * The operation cannot be performed unless the device is acquired * in DISCL_EXCLUSIVE mode. *) DIERR_NOTEXCLUSIVEACQUIRED = $80040205; {$EXTERNALSYM DIERR_NOTEXCLUSIVEACQUIRED} (* * The effect could not be downloaded because essential information * is missing. For example, no axes have been associated with the * effect, or no type-specific information has been created. *) DIERR_INCOMPLETEEFFECT = $80040206; {$EXTERNALSYM DIERR_INCOMPLETEEFFECT} (* * Attempted to read buffered device data from a device that is * not buffered. *) DIERR_NOTBUFFERED = $80040207; {$EXTERNALSYM DIERR_NOTBUFFERED} (* * An attempt was made to modify parameters of an effect while it is * playing. Not all hardware devices support altering the parameters * of an effect while it is playing. *) DIERR_EFFECTPLAYING = $80040208; {$EXTERNALSYM DIERR_EFFECTPLAYING} (* * The operation could not be completed because the device is not * plugged in. *) DIERR_UNPLUGGED = $80040209; {$EXTERNALSYM DIERR_UNPLUGGED} (* * SendDeviceData failed because more information was requested * to be sent than can be sent to the device. Some devices have * restrictions on how much data can be sent to them. (For example, * there might be a limit on the number of buttons that can be * pressed at once.) *) DIERR_REPORTFULL = $8004020A; {$EXTERNALSYM DIERR_REPORTFULL} (* * A mapper file function failed because reading or writing the user or IHV * settings file failed. *) DIERR_MAPFILEFAIL = $8004020B; {$EXTERNALSYM DIERR_MAPFILEFAIL} (*--- DINPUT Mapper Definitions: New for Dx8 ---*) (*--- Keyboard Physical Keyboard Device ---*) DIKEYBOARD_ESCAPE = $81000401; {$EXTERNALSYM DIKEYBOARD_ESCAPE} DIKEYBOARD_1 = $81000402; {$EXTERNALSYM DIKEYBOARD_1} DIKEYBOARD_2 = $81000403; {$EXTERNALSYM DIKEYBOARD_2} DIKEYBOARD_3 = $81000404; {$EXTERNALSYM DIKEYBOARD_3} DIKEYBOARD_4 = $81000405; {$EXTERNALSYM DIKEYBOARD_4} DIKEYBOARD_5 = $81000406; {$EXTERNALSYM DIKEYBOARD_5} DIKEYBOARD_6 = $81000407; {$EXTERNALSYM DIKEYBOARD_6} DIKEYBOARD_7 = $81000408; {$EXTERNALSYM DIKEYBOARD_7} DIKEYBOARD_8 = $81000409; {$EXTERNALSYM DIKEYBOARD_8} DIKEYBOARD_9 = $8100040A; {$EXTERNALSYM DIKEYBOARD_9} DIKEYBOARD_0 = $8100040B; {$EXTERNALSYM DIKEYBOARD_0} DIKEYBOARD_MINUS = $8100040C; (* - on main keyboard *) {$EXTERNALSYM DIKEYBOARD_MINUS} DIKEYBOARD_EQUALS = $8100040D; {$EXTERNALSYM DIKEYBOARD_EQUALS} DIKEYBOARD_BACK = $8100040E; (* backspace *) {$EXTERNALSYM DIKEYBOARD_BACK} DIKEYBOARD_TAB = $8100040F; {$EXTERNALSYM DIKEYBOARD_TAB} DIKEYBOARD_Q = $81000410; {$EXTERNALSYM DIKEYBOARD_Q} DIKEYBOARD_W = $81000411; {$EXTERNALSYM DIKEYBOARD_W} DIKEYBOARD_E = $81000412; {$EXTERNALSYM DIKEYBOARD_E} DIKEYBOARD_R = $81000413; {$EXTERNALSYM DIKEYBOARD_R} DIKEYBOARD_T = $81000414; {$EXTERNALSYM DIKEYBOARD_T} DIKEYBOARD_Y = $81000415; {$EXTERNALSYM DIKEYBOARD_Y} DIKEYBOARD_U = $81000416; {$EXTERNALSYM DIKEYBOARD_U} DIKEYBOARD_I = $81000417; {$EXTERNALSYM DIKEYBOARD_I} DIKEYBOARD_O = $81000418; {$EXTERNALSYM DIKEYBOARD_O} DIKEYBOARD_P = $81000419; {$EXTERNALSYM DIKEYBOARD_P} DIKEYBOARD_LBRACKET = $8100041A; {$EXTERNALSYM DIKEYBOARD_LBRACKET} DIKEYBOARD_RBRACKET = $8100041B; {$EXTERNALSYM DIKEYBOARD_RBRACKET} DIKEYBOARD_RETURN = $8100041C; (* Enter on main keyboard *) {$EXTERNALSYM DIKEYBOARD_RETURN} DIKEYBOARD_LCONTROL = $8100041D; {$EXTERNALSYM DIKEYBOARD_LCONTROL} DIKEYBOARD_A = $8100041E; {$EXTERNALSYM DIKEYBOARD_A} DIKEYBOARD_S = $8100041F; {$EXTERNALSYM DIKEYBOARD_S} DIKEYBOARD_D = $81000420; {$EXTERNALSYM DIKEYBOARD_D} DIKEYBOARD_F = $81000421; {$EXTERNALSYM DIKEYBOARD_F} DIKEYBOARD_G = $81000422; {$EXTERNALSYM DIKEYBOARD_G} DIKEYBOARD_H = $81000423; {$EXTERNALSYM DIKEYBOARD_H} DIKEYBOARD_J = $81000424; {$EXTERNALSYM DIKEYBOARD_J} DIKEYBOARD_K = $81000425; {$EXTERNALSYM DIKEYBOARD_K} DIKEYBOARD_L = $81000426; {$EXTERNALSYM DIKEYBOARD_L} DIKEYBOARD_SEMICOLON = $81000427; {$EXTERNALSYM DIKEYBOARD_SEMICOLON} DIKEYBOARD_APOSTROPHE = $81000428; {$EXTERNALSYM DIKEYBOARD_APOSTROPHE} DIKEYBOARD_GRAVE = $81000429; (* accent grave *) {$EXTERNALSYM DIKEYBOARD_GRAVE} DIKEYBOARD_LSHIFT = $8100042A; {$EXTERNALSYM DIKEYBOARD_LSHIFT} DIKEYBOARD_BACKSLASH = $8100042B; {$EXTERNALSYM DIKEYBOARD_BACKSLASH} DIKEYBOARD_Z = $8100042C; {$EXTERNALSYM DIKEYBOARD_Z} DIKEYBOARD_X = $8100042D; {$EXTERNALSYM DIKEYBOARD_X} DIKEYBOARD_C = $8100042E; {$EXTERNALSYM DIKEYBOARD_C} DIKEYBOARD_V = $8100042F; {$EXTERNALSYM DIKEYBOARD_V} DIKEYBOARD_B = $81000430; {$EXTERNALSYM DIKEYBOARD_B} DIKEYBOARD_N = $81000431; {$EXTERNALSYM DIKEYBOARD_N} DIKEYBOARD_M = $81000432; {$EXTERNALSYM DIKEYBOARD_M} DIKEYBOARD_COMMA = $81000433; {$EXTERNALSYM DIKEYBOARD_COMMA} DIKEYBOARD_PERIOD = $81000434; (* . on main keyboard *) {$EXTERNALSYM DIKEYBOARD_PERIOD} DIKEYBOARD_SLASH = $81000435; (* / on main keyboard *) {$EXTERNALSYM DIKEYBOARD_SLASH} DIKEYBOARD_RSHIFT = $81000436; {$EXTERNALSYM DIKEYBOARD_RSHIFT} DIKEYBOARD_MULTIPLY = $81000437; (* * on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_MULTIPLY} DIKEYBOARD_LMENU = $81000438; (* left Alt *) {$EXTERNALSYM DIKEYBOARD_LMENU} DIKEYBOARD_SPACE = $81000439; {$EXTERNALSYM DIKEYBOARD_SPACE} DIKEYBOARD_CAPITAL = $8100043A; {$EXTERNALSYM DIKEYBOARD_CAPITAL} DIKEYBOARD_F1 = $8100043B; {$EXTERNALSYM DIKEYBOARD_F1} DIKEYBOARD_F2 = $8100043C; {$EXTERNALSYM DIKEYBOARD_F2} DIKEYBOARD_F3 = $8100043D; {$EXTERNALSYM DIKEYBOARD_F3} DIKEYBOARD_F4 = $8100043E; {$EXTERNALSYM DIKEYBOARD_F4} DIKEYBOARD_F5 = $8100043F; {$EXTERNALSYM DIKEYBOARD_F5} DIKEYBOARD_F6 = $81000440; {$EXTERNALSYM DIKEYBOARD_F6} DIKEYBOARD_F7 = $81000441; {$EXTERNALSYM DIKEYBOARD_F7} DIKEYBOARD_F8 = $81000442; {$EXTERNALSYM DIKEYBOARD_F8} DIKEYBOARD_F9 = $81000443; {$EXTERNALSYM DIKEYBOARD_F9} DIKEYBOARD_F10 = $81000444; {$EXTERNALSYM DIKEYBOARD_F10} DIKEYBOARD_NUMLOCK = $81000445; {$EXTERNALSYM DIKEYBOARD_NUMLOCK} DIKEYBOARD_SCROLL = $81000446; (* Scroll Lock *) {$EXTERNALSYM DIKEYBOARD_SCROLL} DIKEYBOARD_NUMPAD7 = $81000447; {$EXTERNALSYM DIKEYBOARD_NUMPAD7} DIKEYBOARD_NUMPAD8 = $81000448; {$EXTERNALSYM DIKEYBOARD_NUMPAD8} DIKEYBOARD_NUMPAD9 = $81000449; {$EXTERNALSYM DIKEYBOARD_NUMPAD9} DIKEYBOARD_SUBTRACT = $8100044A; (* - on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_SUBTRACT} DIKEYBOARD_NUMPAD4 = $8100044B; {$EXTERNALSYM DIKEYBOARD_NUMPAD4} DIKEYBOARD_NUMPAD5 = $8100044C; {$EXTERNALSYM DIKEYBOARD_NUMPAD5} DIKEYBOARD_NUMPAD6 = $8100044D; {$EXTERNALSYM DIKEYBOARD_NUMPAD6} DIKEYBOARD_ADD = $8100044E; (* + on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_ADD} DIKEYBOARD_NUMPAD1 = $8100044F; {$EXTERNALSYM DIKEYBOARD_NUMPAD1} DIKEYBOARD_NUMPAD2 = $81000450; {$EXTERNALSYM DIKEYBOARD_NUMPAD2} DIKEYBOARD_NUMPAD3 = $81000451; {$EXTERNALSYM DIKEYBOARD_NUMPAD3} DIKEYBOARD_NUMPAD0 = $81000452; {$EXTERNALSYM DIKEYBOARD_NUMPAD0} DIKEYBOARD_DECIMAL = $81000453; (* . on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_DECIMAL} DIKEYBOARD_OEM_102 = $81000456; (* <> or \| on RT 102-key keyboard (Non-U.S.) *) {$EXTERNALSYM DIKEYBOARD_OEM_102} DIKEYBOARD_F11 = $81000457; {$EXTERNALSYM DIKEYBOARD_F11} DIKEYBOARD_F12 = $81000458; {$EXTERNALSYM DIKEYBOARD_F12} DIKEYBOARD_F13 = $81000464; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_F13} DIKEYBOARD_F14 = $81000465; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_F14} DIKEYBOARD_F15 = $81000466; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_F15} DIKEYBOARD_KANA = $81000470; (* (Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_KANA} DIKEYBOARD_ABNT_C1 = $81000473; (* /? on Brazilian keyboard *) {$EXTERNALSYM DIKEYBOARD_ABNT_C1} DIKEYBOARD_CONVERT = $81000479; (* (Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_CONVERT} DIKEYBOARD_NOCONVERT = $8100047B; (* (Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_NOCONVERT} DIKEYBOARD_YEN = $8100047D; (* (Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_YEN} DIKEYBOARD_ABNT_C2 = $8100047E; (* Numpad . on Brazilian keyboard *) {$EXTERNALSYM DIKEYBOARD_ABNT_C2} DIKEYBOARD_NUMPADEQUALS = $8100048D; (* = on numeric keypad (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_NUMPADEQUALS} DIKEYBOARD_PREVTRACK = $81000490; (* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_PREVTRACK} DIKEYBOARD_AT = $81000491; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_AT} DIKEYBOARD_COLON = $81000492; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_COLON} DIKEYBOARD_UNDERLINE = $81000493; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_UNDERLINE} DIKEYBOARD_KANJI = $81000494; (* (Japanese keyboard) *) {$EXTERNALSYM DIKEYBOARD_KANJI} DIKEYBOARD_STOP = $81000495; (* (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_STOP} DIKEYBOARD_AX = $81000496; (* (Japan AX) *) {$EXTERNALSYM DIKEYBOARD_AX} DIKEYBOARD_UNLABELED = $81000497; (* (J3100) *) {$EXTERNALSYM DIKEYBOARD_UNLABELED} DIKEYBOARD_NEXTTRACK = $81000499; (* Next Track *) {$EXTERNALSYM DIKEYBOARD_NEXTTRACK} DIKEYBOARD_NUMPADENTER = $8100049C; (* Enter on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_NUMPADENTER} DIKEYBOARD_RCONTROL = $8100049D; {$EXTERNALSYM DIKEYBOARD_RCONTROL} DIKEYBOARD_MUTE = $810004A0; (* Mute *) {$EXTERNALSYM DIKEYBOARD_MUTE} DIKEYBOARD_CALCULATOR = $810004A1; (* Calculator *) {$EXTERNALSYM DIKEYBOARD_CALCULATOR} DIKEYBOARD_PLAYPAUSE = $810004A2; (* Play / Pause *) {$EXTERNALSYM DIKEYBOARD_PLAYPAUSE} DIKEYBOARD_MEDIASTOP = $810004A4; (* Media Stop *) {$EXTERNALSYM DIKEYBOARD_MEDIASTOP} DIKEYBOARD_VOLUMEDOWN = $810004AE; (* Volume - *) {$EXTERNALSYM DIKEYBOARD_VOLUMEDOWN} DIKEYBOARD_VOLUMEUP = $810004B0; (* Volume + *) {$EXTERNALSYM DIKEYBOARD_VOLUMEUP} DIKEYBOARD_WEBHOME = $810004B2; (* Web home *) {$EXTERNALSYM DIKEYBOARD_WEBHOME} DIKEYBOARD_NUMPADCOMMA = $810004B3; (* , on numeric keypad (NEC PC98) *) {$EXTERNALSYM DIKEYBOARD_NUMPADCOMMA} DIKEYBOARD_DIVIDE = $810004B5; (* / on numeric keypad *) {$EXTERNALSYM DIKEYBOARD_DIVIDE} DIKEYBOARD_SYSRQ = $810004B7; {$EXTERNALSYM DIKEYBOARD_SYSRQ} DIKEYBOARD_RMENU = $810004B8; (* right Alt *) {$EXTERNALSYM DIKEYBOARD_RMENU} DIKEYBOARD_PAUSE = $810004C5; (* Pause *) {$EXTERNALSYM DIKEYBOARD_PAUSE} DIKEYBOARD_HOME = $810004C7; (* Home on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_HOME} DIKEYBOARD_UP = $810004C8; (* UpArrow on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_UP} DIKEYBOARD_PRIOR = $810004C9; (* PgUp on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_PRIOR} DIKEYBOARD_LEFT = $810004CB; (* LeftArrow on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_LEFT} DIKEYBOARD_RIGHT = $810004CD; (* RightArrow on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_RIGHT} DIKEYBOARD_END = $810004CF; (* End on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_END} DIKEYBOARD_DOWN = $810004D0; (* DownArrow on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_DOWN} DIKEYBOARD_NEXT = $810004D1; (* PgDn on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_NEXT} DIKEYBOARD_INSERT = $810004D2; (* Insert on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_INSERT} DIKEYBOARD_DELETE = $810004D3; (* Delete on arrow keypad *) {$EXTERNALSYM DIKEYBOARD_DELETE} DIKEYBOARD_LWIN = $810004DB; (* Left Windows key *) {$EXTERNALSYM DIKEYBOARD_LWIN} DIKEYBOARD_RWIN = $810004DC; (* Right Windows key *) {$EXTERNALSYM DIKEYBOARD_RWIN} DIKEYBOARD_APPS = $810004DD; (* AppMenu key *) {$EXTERNALSYM DIKEYBOARD_APPS} DIKEYBOARD_POWER = $810004DE; (* System Power *) {$EXTERNALSYM DIKEYBOARD_POWER} DIKEYBOARD_SLEEP = $810004DF; (* System Sleep *) {$EXTERNALSYM DIKEYBOARD_SLEEP} DIKEYBOARD_WAKE = $810004E3; (* System Wake *) {$EXTERNALSYM DIKEYBOARD_WAKE} DIKEYBOARD_WEBSEARCH = $810004E5; (* Web Search *) {$EXTERNALSYM DIKEYBOARD_WEBSEARCH} DIKEYBOARD_WEBFAVORITES = $810004E6; (* Web Favorites *) {$EXTERNALSYM DIKEYBOARD_WEBFAVORITES} DIKEYBOARD_WEBREFRESH = $810004E7; (* Web Refresh *) {$EXTERNALSYM DIKEYBOARD_WEBREFRESH} DIKEYBOARD_WEBSTOP = $810004E8; (* Web Stop *) {$EXTERNALSYM DIKEYBOARD_WEBSTOP} DIKEYBOARD_WEBFORWARD = $810004E9; (* Web Forward *) {$EXTERNALSYM DIKEYBOARD_WEBFORWARD} DIKEYBOARD_WEBBACK = $810004EA; (* Web Back *) {$EXTERNALSYM DIKEYBOARD_WEBBACK} DIKEYBOARD_MYCOMPUTER = $810004EB; (* My Computer *) {$EXTERNALSYM DIKEYBOARD_MYCOMPUTER} DIKEYBOARD_MAIL = $810004EC; (* Mail *) {$EXTERNALSYM DIKEYBOARD_MAIL} DIKEYBOARD_MEDIASELECT = $810004ED; (* Media Select *) {$EXTERNALSYM DIKEYBOARD_MEDIASELECT} (*--- MOUSE Physical Mouse Device ---*) DIMOUSE_XAXISAB = ($82000200 or DIMOFS_X); (* X Axis-absolute: Some mice natively report absolute coordinates *) {$EXTERNALSYM DIMOUSE_XAXISAB} DIMOUSE_YAXISAB = ($82000200 or DIMOFS_Y); (* Y Axis-absolute: Some mice natively report absolute coordinates *) {$EXTERNALSYM DIMOUSE_YAXISAB} DIMOUSE_XAXIS = ($82000300 or DIMOFS_X); (* X Axis *) {$EXTERNALSYM DIMOUSE_XAXIS} DIMOUSE_YAXIS = ($82000300 or DIMOFS_Y); (* Y Axis *) {$EXTERNALSYM DIMOUSE_YAXIS} DIMOUSE_WHEEL = ($82000300 or DIMOFS_Z); (* Z Axis *) {$EXTERNALSYM DIMOUSE_WHEEL} DIMOUSE_BUTTON0 = ($82000400 or DIMOFS_BUTTON0); (* Button 0 *) {$EXTERNALSYM DIMOUSE_BUTTON0} DIMOUSE_BUTTON1 = ($82000400 or DIMOFS_BUTTON1); (* Button 1 *) {$EXTERNALSYM DIMOUSE_BUTTON1} DIMOUSE_BUTTON2 = ($82000400 or DIMOFS_BUTTON2); (* Button 2 *) {$EXTERNALSYM DIMOUSE_BUTTON2} DIMOUSE_BUTTON3 = ($82000400 or DIMOFS_BUTTON3); (* Button 3 *) {$EXTERNALSYM DIMOUSE_BUTTON3} DIMOUSE_BUTTON4 = ($82000400 or DIMOFS_BUTTON4); (* Button 4 *) {$EXTERNALSYM DIMOUSE_BUTTON4} DIMOUSE_BUTTON5 = ($82000400 or DIMOFS_BUTTON5); (* Button 5 *) {$EXTERNALSYM DIMOUSE_BUTTON5} DIMOUSE_BUTTON6 = ($82000400 or DIMOFS_BUTTON6); (* Button 6 *) {$EXTERNALSYM DIMOUSE_BUTTON6} DIMOUSE_BUTTON7 = ($82000400 or DIMOFS_BUTTON7); (* Button 7 *) {$EXTERNALSYM DIMOUSE_BUTTON7} (*--- VOICE Physical Dplay Voice Device ---*) DIVOICE_CHANNEL1 = $83000401; {$EXTERNALSYM DIVOICE_CHANNEL1} DIVOICE_CHANNEL2 = $83000402; {$EXTERNALSYM DIVOICE_CHANNEL2} DIVOICE_CHANNEL3 = $83000403; {$EXTERNALSYM DIVOICE_CHANNEL3} DIVOICE_CHANNEL4 = $83000404; {$EXTERNALSYM DIVOICE_CHANNEL4} DIVOICE_CHANNEL5 = $83000405; {$EXTERNALSYM DIVOICE_CHANNEL5} DIVOICE_CHANNEL6 = $83000406; {$EXTERNALSYM DIVOICE_CHANNEL6} DIVOICE_CHANNEL7 = $83000407; {$EXTERNALSYM DIVOICE_CHANNEL7} DIVOICE_CHANNEL8 = $83000408; {$EXTERNALSYM DIVOICE_CHANNEL8} DIVOICE_TEAM = $83000409; {$EXTERNALSYM DIVOICE_TEAM} DIVOICE_ALL = $8300040A; {$EXTERNALSYM DIVOICE_ALL} DIVOICE_RECORDMUTE = $8300040B; {$EXTERNALSYM DIVOICE_RECORDMUTE} DIVOICE_PLAYBACKMUTE = $8300040C; {$EXTERNALSYM DIVOICE_PLAYBACKMUTE} DIVOICE_TRANSMIT = $8300040D; {$EXTERNALSYM DIVOICE_TRANSMIT} DIVOICE_VOICECOMMAND = $83000410; {$EXTERNALSYM DIVOICE_VOICECOMMAND} (*--- Driving Simulator - Racing Vehicle control is primary objective ---*) DIVIRTUAL_DRIVING_RACE = $01000000; {$EXTERNALSYM DIVIRTUAL_DRIVING_RACE} DIAXIS_DRIVINGR_STEER = $01008A01; (* Steering *) {$EXTERNALSYM DIAXIS_DRIVINGR_STEER} DIAXIS_DRIVINGR_ACCELERATE = $01039202; (* Accelerate *) {$EXTERNALSYM DIAXIS_DRIVINGR_ACCELERATE} DIAXIS_DRIVINGR_BRAKE = $01041203; (* Brake-Axis *) {$EXTERNALSYM DIAXIS_DRIVINGR_BRAKE} DIBUTTON_DRIVINGR_SHIFTUP = $01000C01; (* Shift to next higher gear *) {$EXTERNALSYM DIBUTTON_DRIVINGR_SHIFTUP} DIBUTTON_DRIVINGR_SHIFTDOWN = $01000C02; (* Shift to next lower gear *) {$EXTERNALSYM DIBUTTON_DRIVINGR_SHIFTDOWN} DIBUTTON_DRIVINGR_VIEW = $01001C03; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_DRIVINGR_VIEW} DIBUTTON_DRIVINGR_MENU = $010004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_DRIVINGR_MENU} (*--- Priority 2 controls ---*) DIAXIS_DRIVINGR_ACCEL_AND_BRAKE = $01014A04; (* Some devices combine accelerate and brake in a single axis *) {$EXTERNALSYM DIAXIS_DRIVINGR_ACCEL_AND_BRAKE} DIHATSWITCH_DRIVINGR_GLANCE = $01004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_DRIVINGR_GLANCE} DIBUTTON_DRIVINGR_BRAKE = $01004C04; (* Brake-button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_BRAKE} DIBUTTON_DRIVINGR_DASHBOARD = $01004405; (* Select next dashboard option *) {$EXTERNALSYM DIBUTTON_DRIVINGR_DASHBOARD} DIBUTTON_DRIVINGR_AIDS = $01004406; (* Driver correction aids *) {$EXTERNALSYM DIBUTTON_DRIVINGR_AIDS} DIBUTTON_DRIVINGR_MAP = $01004407; (* Display Driving Map *) {$EXTERNALSYM DIBUTTON_DRIVINGR_MAP} DIBUTTON_DRIVINGR_BOOST = $01004408; (* Turbo Boost *) {$EXTERNALSYM DIBUTTON_DRIVINGR_BOOST} DIBUTTON_DRIVINGR_PIT = $01004409; (* Pit stop notification *) {$EXTERNALSYM DIBUTTON_DRIVINGR_PIT} DIBUTTON_DRIVINGR_ACCELERATE_LINK = $0103D4E0; (* Fallback Accelerate button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_ACCELERATE_LINK} DIBUTTON_DRIVINGR_STEER_LEFT_LINK = $0100CCE4; (* Fallback Steer Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_STEER_LEFT_LINK} DIBUTTON_DRIVINGR_STEER_RIGHT_LINK = $0100CCEC; (* Fallback Steer Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_STEER_RIGHT_LINK} DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK = $0107C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK} DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK = $0107C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK} DIBUTTON_DRIVINGR_DEVICE = $010044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_DRIVINGR_DEVICE} DIBUTTON_DRIVINGR_PAUSE = $010044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_DRIVINGR_PAUSE} (*--- Driving Simulator - Combat Combat from within a vehicle is primary objective ---*) DIVIRTUAL_DRIVING_COMBAT = $02000000; {$EXTERNALSYM DIVIRTUAL_DRIVING_COMBAT} DIAXIS_DRIVINGC_STEER = $02008A01; (* Steering *) {$EXTERNALSYM DIAXIS_DRIVINGC_STEER} DIAXIS_DRIVINGC_ACCELERATE = $02039202; (* Accelerate *) {$EXTERNALSYM DIAXIS_DRIVINGC_ACCELERATE} DIAXIS_DRIVINGC_BRAKE = $02041203; (* Brake-axis *) {$EXTERNALSYM DIAXIS_DRIVINGC_BRAKE} DIBUTTON_DRIVINGC_FIRE = $02000C01; (* Fire *) {$EXTERNALSYM DIBUTTON_DRIVINGC_FIRE} DIBUTTON_DRIVINGC_WEAPONS = $02000C02; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_DRIVINGC_WEAPONS} DIBUTTON_DRIVINGC_TARGET = $02000C03; (* Select next available target *) {$EXTERNALSYM DIBUTTON_DRIVINGC_TARGET} DIBUTTON_DRIVINGC_MENU = $020004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_DRIVINGC_MENU} (*--- Priority 2 controls ---*) DIAXIS_DRIVINGC_ACCEL_AND_BRAKE = $02014A04; (* Some devices combine accelerate and brake in a single axis *) {$EXTERNALSYM DIAXIS_DRIVINGC_ACCEL_AND_BRAKE} DIHATSWITCH_DRIVINGC_GLANCE = $02004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_DRIVINGC_GLANCE} DIBUTTON_DRIVINGC_SHIFTUP = $02004C04; (* Shift to next higher gear *) {$EXTERNALSYM DIBUTTON_DRIVINGC_SHIFTUP} DIBUTTON_DRIVINGC_SHIFTDOWN = $02004C05; (* Shift to next lower gear *) {$EXTERNALSYM DIBUTTON_DRIVINGC_SHIFTDOWN} DIBUTTON_DRIVINGC_DASHBOARD = $02004406; (* Select next dashboard option *) {$EXTERNALSYM DIBUTTON_DRIVINGC_DASHBOARD} DIBUTTON_DRIVINGC_AIDS = $02004407; (* Driver correction aids *) {$EXTERNALSYM DIBUTTON_DRIVINGC_AIDS} DIBUTTON_DRIVINGC_BRAKE = $02004C08; (* Brake-button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_BRAKE} DIBUTTON_DRIVINGC_FIRESECONDARY = $02004C09; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_FIRESECONDARY} DIBUTTON_DRIVINGC_ACCELERATE_LINK = $0203D4E0; (* Fallback Accelerate button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_ACCELERATE_LINK} DIBUTTON_DRIVINGC_STEER_LEFT_LINK = $0200CCE4; (* Fallback Steer Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_STEER_LEFT_LINK} DIBUTTON_DRIVINGC_STEER_RIGHT_LINK = $0200CCEC; (* Fallback Steer Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_STEER_RIGHT_LINK} DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK = $0207C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK} DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK = $0207C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK} DIBUTTON_DRIVINGC_DEVICE = $020044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_DRIVINGC_DEVICE} DIBUTTON_DRIVINGC_PAUSE = $020044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_DRIVINGC_PAUSE} (*--- Driving Simulator - Tank Combat from withing a tank is primary objective ---*) DIVIRTUAL_DRIVING_TANK = $03000000; {$EXTERNALSYM DIVIRTUAL_DRIVING_TANK} DIAXIS_DRIVINGT_STEER = $03008A01; (* Turn tank left / right *) {$EXTERNALSYM DIAXIS_DRIVINGT_STEER} DIAXIS_DRIVINGT_BARREL = $03010202; (* Raise / lower barrel *) {$EXTERNALSYM DIAXIS_DRIVINGT_BARREL} DIAXIS_DRIVINGT_ACCELERATE = $03039203; (* Accelerate *) {$EXTERNALSYM DIAXIS_DRIVINGT_ACCELERATE} DIAXIS_DRIVINGT_ROTATE = $03020204; (* Turn barrel left / right *) {$EXTERNALSYM DIAXIS_DRIVINGT_ROTATE} DIBUTTON_DRIVINGT_FIRE = $03000C01; (* Fire *) {$EXTERNALSYM DIBUTTON_DRIVINGT_FIRE} DIBUTTON_DRIVINGT_WEAPONS = $03000C02; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_DRIVINGT_WEAPONS} DIBUTTON_DRIVINGT_TARGET = $03000C03; (* Selects next available target *) {$EXTERNALSYM DIBUTTON_DRIVINGT_TARGET} DIBUTTON_DRIVINGT_MENU = $030004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_DRIVINGT_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_DRIVINGT_GLANCE = $03004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_DRIVINGT_GLANCE} DIAXIS_DRIVINGT_BRAKE = $03045205; (* Brake-axis *) {$EXTERNALSYM DIAXIS_DRIVINGT_BRAKE} DIAXIS_DRIVINGT_ACCEL_AND_BRAKE = $03014A06; (* Some devices combine accelerate and brake in a single axis *) {$EXTERNALSYM DIAXIS_DRIVINGT_ACCEL_AND_BRAKE} DIBUTTON_DRIVINGT_VIEW = $03005C04; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_DRIVINGT_VIEW} DIBUTTON_DRIVINGT_DASHBOARD = $03005C05; (* Select next dashboard option *) {$EXTERNALSYM DIBUTTON_DRIVINGT_DASHBOARD} DIBUTTON_DRIVINGT_BRAKE = $03004C06; (* Brake-button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_BRAKE} DIBUTTON_DRIVINGT_FIRESECONDARY = $03004C07; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_FIRESECONDARY} DIBUTTON_DRIVINGT_ACCELERATE_LINK = $0303D4E0; (* Fallback Accelerate button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_ACCELERATE_LINK} DIBUTTON_DRIVINGT_STEER_LEFT_LINK = $0300CCE4; (* Fallback Steer Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_STEER_LEFT_LINK} DIBUTTON_DRIVINGT_STEER_RIGHT_LINK = $0300CCEC; (* Fallback Steer Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_STEER_RIGHT_LINK} DIBUTTON_DRIVINGT_BARREL_UP_LINK = $030144E0; (* Fallback Barrel up button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_BARREL_UP_LINK} DIBUTTON_DRIVINGT_BARREL_DOWN_LINK = $030144E8; (* Fallback Barrel down button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_BARREL_DOWN_LINK} DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK = $030244E4; (* Fallback Rotate left button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK} DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK = $030244EC; (* Fallback Rotate right button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK} DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK = $0307C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK} DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK = $0307C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK} DIBUTTON_DRIVINGT_DEVICE = $030044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_DRIVINGT_DEVICE} DIBUTTON_DRIVINGT_PAUSE = $030044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_DRIVINGT_PAUSE} (*--- Flight Simulator - Civilian Plane control is the primary objective ---*) DIVIRTUAL_FLYING_CIVILIAN = $04000000; {$EXTERNALSYM DIVIRTUAL_FLYING_CIVILIAN} DIAXIS_FLYINGC_BANK = $04008A01; (* Roll ship left / right *) {$EXTERNALSYM DIAXIS_FLYINGC_BANK} DIAXIS_FLYINGC_PITCH = $04010A02; (* Nose up / down *) {$EXTERNALSYM DIAXIS_FLYINGC_PITCH} DIAXIS_FLYINGC_THROTTLE = $04039203; (* Throttle *) {$EXTERNALSYM DIAXIS_FLYINGC_THROTTLE} DIBUTTON_FLYINGC_VIEW = $04002401; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_FLYINGC_VIEW} DIBUTTON_FLYINGC_DISPLAY = $04002402; (* Select next dashboard / heads up display option *) {$EXTERNALSYM DIBUTTON_FLYINGC_DISPLAY} DIBUTTON_FLYINGC_GEAR = $04002C03; (* Gear up / down *) {$EXTERNALSYM DIBUTTON_FLYINGC_GEAR} DIBUTTON_FLYINGC_MENU = $040004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FLYINGC_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_FLYINGC_GLANCE = $04004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FLYINGC_GLANCE} DIAXIS_FLYINGC_BRAKE = $04046A04; (* Apply Brake *) {$EXTERNALSYM DIAXIS_FLYINGC_BRAKE} DIAXIS_FLYINGC_RUDDER = $04025205; (* Yaw ship left/right *) {$EXTERNALSYM DIAXIS_FLYINGC_RUDDER} DIAXIS_FLYINGC_FLAPS = $04055A06; (* Flaps *) {$EXTERNALSYM DIAXIS_FLYINGC_FLAPS} DIBUTTON_FLYINGC_FLAPSUP = $04006404; (* Increment stepping up until fully retracted *) {$EXTERNALSYM DIBUTTON_FLYINGC_FLAPSUP} DIBUTTON_FLYINGC_FLAPSDOWN = $04006405; (* Decrement stepping down until fully extended *) {$EXTERNALSYM DIBUTTON_FLYINGC_FLAPSDOWN} DIBUTTON_FLYINGC_BRAKE_LINK = $04046CE0; (* Fallback brake button *) {$EXTERNALSYM DIBUTTON_FLYINGC_BRAKE_LINK} DIBUTTON_FLYINGC_FASTER_LINK = $0403D4E0; (* Fallback throttle up button *) {$EXTERNALSYM DIBUTTON_FLYINGC_FASTER_LINK} DIBUTTON_FLYINGC_SLOWER_LINK = $0403D4E8; (* Fallback throttle down button *) {$EXTERNALSYM DIBUTTON_FLYINGC_SLOWER_LINK} DIBUTTON_FLYINGC_GLANCE_LEFT_LINK = $0407C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_LEFT_LINK} DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK = $0407C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK} DIBUTTON_FLYINGC_GLANCE_UP_LINK = $0407C4E0; (* Fallback Glance Up button *) {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_UP_LINK} DIBUTTON_FLYINGC_GLANCE_DOWN_LINK = $0407C4E8; (* Fallback Glance Down button *) {$EXTERNALSYM DIBUTTON_FLYINGC_GLANCE_DOWN_LINK} DIBUTTON_FLYINGC_DEVICE = $040044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FLYINGC_DEVICE} DIBUTTON_FLYINGC_PAUSE = $040044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FLYINGC_PAUSE} (*--- Flight Simulator - Military Aerial combat is the primary objective ---*) DIVIRTUAL_FLYING_MILITARY = $05000000; {$EXTERNALSYM DIVIRTUAL_FLYING_MILITARY} DIAXIS_FLYINGM_BANK = $05008A01; (* Bank - Roll ship left / right *) {$EXTERNALSYM DIAXIS_FLYINGM_BANK} DIAXIS_FLYINGM_PITCH = $05010A02; (* Pitch - Nose up / down *) {$EXTERNALSYM DIAXIS_FLYINGM_PITCH} DIAXIS_FLYINGM_THROTTLE = $05039203; (* Throttle - faster / slower *) {$EXTERNALSYM DIAXIS_FLYINGM_THROTTLE} DIBUTTON_FLYINGM_FIRE = $05000C01; (* Fire *) {$EXTERNALSYM DIBUTTON_FLYINGM_FIRE} DIBUTTON_FLYINGM_WEAPONS = $05000C02; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_FLYINGM_WEAPONS} DIBUTTON_FLYINGM_TARGET = $05000C03; (* Selects next available target *) {$EXTERNALSYM DIBUTTON_FLYINGM_TARGET} DIBUTTON_FLYINGM_MENU = $050004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FLYINGM_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_FLYINGM_GLANCE = $05004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FLYINGM_GLANCE} DIBUTTON_FLYINGM_COUNTER = $05005C04; (* Activate counter measures *) {$EXTERNALSYM DIBUTTON_FLYINGM_COUNTER} DIAXIS_FLYINGM_RUDDER = $05024A04; (* Rudder - Yaw ship left/right *) {$EXTERNALSYM DIAXIS_FLYINGM_RUDDER} DIAXIS_FLYINGM_BRAKE = $05046205; (* Brake-axis *) {$EXTERNALSYM DIAXIS_FLYINGM_BRAKE} DIBUTTON_FLYINGM_VIEW = $05006405; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_FLYINGM_VIEW} DIBUTTON_FLYINGM_DISPLAY = $05006406; (* Select next dashboard option *) {$EXTERNALSYM DIBUTTON_FLYINGM_DISPLAY} DIAXIS_FLYINGM_FLAPS = $05055206; (* Flaps *) {$EXTERNALSYM DIAXIS_FLYINGM_FLAPS} DIBUTTON_FLYINGM_FLAPSUP = $05005407; (* Increment stepping up until fully retracted *) {$EXTERNALSYM DIBUTTON_FLYINGM_FLAPSUP} DIBUTTON_FLYINGM_FLAPSDOWN = $05005408; (* Decrement stepping down until fully extended *) {$EXTERNALSYM DIBUTTON_FLYINGM_FLAPSDOWN} DIBUTTON_FLYINGM_FIRESECONDARY = $05004C09; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_FLYINGM_FIRESECONDARY} DIBUTTON_FLYINGM_GEAR = $0500640A; (* Gear up / down *) {$EXTERNALSYM DIBUTTON_FLYINGM_GEAR} DIBUTTON_FLYINGM_BRAKE_LINK = $050464E0; (* Fallback brake button *) {$EXTERNALSYM DIBUTTON_FLYINGM_BRAKE_LINK} DIBUTTON_FLYINGM_FASTER_LINK = $0503D4E0; (* Fallback throttle up button *) {$EXTERNALSYM DIBUTTON_FLYINGM_FASTER_LINK} DIBUTTON_FLYINGM_SLOWER_LINK = $0503D4E8; (* Fallback throttle down button *) {$EXTERNALSYM DIBUTTON_FLYINGM_SLOWER_LINK} DIBUTTON_FLYINGM_GLANCE_LEFT_LINK = $0507C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_LEFT_LINK} DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK = $0507C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK} DIBUTTON_FLYINGM_GLANCE_UP_LINK = $0507C4E0; (* Fallback Glance Up button *) {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_UP_LINK} DIBUTTON_FLYINGM_GLANCE_DOWN_LINK = $0507C4E8; (* Fallback Glance Down button *) {$EXTERNALSYM DIBUTTON_FLYINGM_GLANCE_DOWN_LINK} DIBUTTON_FLYINGM_DEVICE = $050044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FLYINGM_DEVICE} DIBUTTON_FLYINGM_PAUSE = $050044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FLYINGM_PAUSE} (*--- Flight Simulator - Combat Helicopter Combat from helicopter is primary objective ---*) DIVIRTUAL_FLYING_HELICOPTER = $06000000; {$EXTERNALSYM DIVIRTUAL_FLYING_HELICOPTER} DIAXIS_FLYINGH_BANK = $06008A01; (* Bank - Roll ship left / right *) {$EXTERNALSYM DIAXIS_FLYINGH_BANK} DIAXIS_FLYINGH_PITCH = $06010A02; (* Pitch - Nose up / down *) {$EXTERNALSYM DIAXIS_FLYINGH_PITCH} DIAXIS_FLYINGH_COLLECTIVE = $06018A03; (* Collective - Blade pitch/power *) {$EXTERNALSYM DIAXIS_FLYINGH_COLLECTIVE} DIBUTTON_FLYINGH_FIRE = $06001401; (* Fire *) {$EXTERNALSYM DIBUTTON_FLYINGH_FIRE} DIBUTTON_FLYINGH_WEAPONS = $06001402; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_FLYINGH_WEAPONS} DIBUTTON_FLYINGH_TARGET = $06001403; (* Selects next available target *) {$EXTERNALSYM DIBUTTON_FLYINGH_TARGET} DIBUTTON_FLYINGH_MENU = $060004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FLYINGH_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_FLYINGH_GLANCE = $06004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FLYINGH_GLANCE} DIAXIS_FLYINGH_TORQUE = $06025A04; (* Torque - Rotate ship around left / right axis *) {$EXTERNALSYM DIAXIS_FLYINGH_TORQUE} DIAXIS_FLYINGH_THROTTLE = $0603DA05; (* Throttle *) {$EXTERNALSYM DIAXIS_FLYINGH_THROTTLE} DIBUTTON_FLYINGH_COUNTER = $06005404; (* Activate counter measures *) {$EXTERNALSYM DIBUTTON_FLYINGH_COUNTER} DIBUTTON_FLYINGH_VIEW = $06006405; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_FLYINGH_VIEW} DIBUTTON_FLYINGH_GEAR = $06006406; (* Gear up / down *) {$EXTERNALSYM DIBUTTON_FLYINGH_GEAR} DIBUTTON_FLYINGH_FIRESECONDARY = $06004C07; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_FLYINGH_FIRESECONDARY} DIBUTTON_FLYINGH_FASTER_LINK = $0603DCE0; (* Fallback throttle up button *) {$EXTERNALSYM DIBUTTON_FLYINGH_FASTER_LINK} DIBUTTON_FLYINGH_SLOWER_LINK = $0603DCE8; (* Fallback throttle down button *) {$EXTERNALSYM DIBUTTON_FLYINGH_SLOWER_LINK} DIBUTTON_FLYINGH_GLANCE_LEFT_LINK = $0607C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_LEFT_LINK} DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK = $0607C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK} DIBUTTON_FLYINGH_GLANCE_UP_LINK = $0607C4E0; (* Fallback Glance Up button *) {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_UP_LINK} DIBUTTON_FLYINGH_GLANCE_DOWN_LINK = $0607C4E8; (* Fallback Glance Down button *) {$EXTERNALSYM DIBUTTON_FLYINGH_GLANCE_DOWN_LINK} DIBUTTON_FLYINGH_DEVICE = $060044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FLYINGH_DEVICE} DIBUTTON_FLYINGH_PAUSE = $060044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FLYINGH_PAUSE} (*--- Space Simulator - Combat Space Simulator with weapons ---*) DIVIRTUAL_SPACESIM = $07000000; {$EXTERNALSYM DIVIRTUAL_SPACESIM} DIAXIS_SPACESIM_LATERAL = $07008201; (* Move ship left / right *) {$EXTERNALSYM DIAXIS_SPACESIM_LATERAL} DIAXIS_SPACESIM_MOVE = $07010202; (* Move ship forward/backward *) {$EXTERNALSYM DIAXIS_SPACESIM_MOVE} DIAXIS_SPACESIM_THROTTLE = $07038203; (* Throttle - Engine speed *) {$EXTERNALSYM DIAXIS_SPACESIM_THROTTLE} DIBUTTON_SPACESIM_FIRE = $07000401; (* Fire *) {$EXTERNALSYM DIBUTTON_SPACESIM_FIRE} DIBUTTON_SPACESIM_WEAPONS = $07000402; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_SPACESIM_WEAPONS} DIBUTTON_SPACESIM_TARGET = $07000403; (* Selects next available target *) {$EXTERNALSYM DIBUTTON_SPACESIM_TARGET} DIBUTTON_SPACESIM_MENU = $070004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_SPACESIM_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_SPACESIM_GLANCE = $07004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_SPACESIM_GLANCE} DIAXIS_SPACESIM_CLIMB = $0701C204; (* Climb - Pitch ship up/down *) {$EXTERNALSYM DIAXIS_SPACESIM_CLIMB} DIAXIS_SPACESIM_ROTATE = $07024205; (* Rotate - Turn ship left/right *) {$EXTERNALSYM DIAXIS_SPACESIM_ROTATE} DIBUTTON_SPACESIM_VIEW = $07004404; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_SPACESIM_VIEW} DIBUTTON_SPACESIM_DISPLAY = $07004405; (* Select next dashboard / heads up display option *) {$EXTERNALSYM DIBUTTON_SPACESIM_DISPLAY} DIBUTTON_SPACESIM_RAISE = $07004406; (* Raise ship while maintaining current pitch *) {$EXTERNALSYM DIBUTTON_SPACESIM_RAISE} DIBUTTON_SPACESIM_LOWER = $07004407; (* Lower ship while maintaining current pitch *) {$EXTERNALSYM DIBUTTON_SPACESIM_LOWER} DIBUTTON_SPACESIM_GEAR = $07004408; (* Gear up / down *) {$EXTERNALSYM DIBUTTON_SPACESIM_GEAR} DIBUTTON_SPACESIM_FIRESECONDARY = $07004409; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_SPACESIM_FIRESECONDARY} DIBUTTON_SPACESIM_LEFT_LINK = $0700C4E4; (* Fallback move left button *) {$EXTERNALSYM DIBUTTON_SPACESIM_LEFT_LINK} DIBUTTON_SPACESIM_RIGHT_LINK = $0700C4EC; (* Fallback move right button *) {$EXTERNALSYM DIBUTTON_SPACESIM_RIGHT_LINK} DIBUTTON_SPACESIM_FORWARD_LINK = $070144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_SPACESIM_FORWARD_LINK} DIBUTTON_SPACESIM_BACKWARD_LINK = $070144E8; (* Fallback move backwards button *) {$EXTERNALSYM DIBUTTON_SPACESIM_BACKWARD_LINK} DIBUTTON_SPACESIM_FASTER_LINK = $0703C4E0; (* Fallback throttle up button *) {$EXTERNALSYM DIBUTTON_SPACESIM_FASTER_LINK} DIBUTTON_SPACESIM_SLOWER_LINK = $0703C4E8; (* Fallback throttle down button *) {$EXTERNALSYM DIBUTTON_SPACESIM_SLOWER_LINK} DIBUTTON_SPACESIM_TURN_LEFT_LINK = $070244E4; (* Fallback turn left button *) {$EXTERNALSYM DIBUTTON_SPACESIM_TURN_LEFT_LINK} DIBUTTON_SPACESIM_TURN_RIGHT_LINK = $070244EC; (* Fallback turn right button *) {$EXTERNALSYM DIBUTTON_SPACESIM_TURN_RIGHT_LINK} DIBUTTON_SPACESIM_GLANCE_LEFT_LINK = $0707C4E4; (* Fallback Glance Left button *) {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_LEFT_LINK} DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK = $0707C4EC; (* Fallback Glance Right button *) {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK} DIBUTTON_SPACESIM_GLANCE_UP_LINK = $0707C4E0; (* Fallback Glance Up button *) {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_UP_LINK} DIBUTTON_SPACESIM_GLANCE_DOWN_LINK = $0707C4E8; (* Fallback Glance Down button *) {$EXTERNALSYM DIBUTTON_SPACESIM_GLANCE_DOWN_LINK} DIBUTTON_SPACESIM_DEVICE = $070044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_SPACESIM_DEVICE} DIBUTTON_SPACESIM_PAUSE = $070044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_SPACESIM_PAUSE} (*--- Fighting - First Person Hand to Hand combat is primary objective ---*) DIVIRTUAL_FIGHTING_HAND2HAND = $08000000; {$EXTERNALSYM DIVIRTUAL_FIGHTING_HAND2HAND} DIAXIS_FIGHTINGH_LATERAL = $08008201; (* Sidestep left/right *) {$EXTERNALSYM DIAXIS_FIGHTINGH_LATERAL} DIAXIS_FIGHTINGH_MOVE = $08010202; (* Move forward/backward *) {$EXTERNALSYM DIAXIS_FIGHTINGH_MOVE} DIBUTTON_FIGHTINGH_PUNCH = $08000401; (* Punch *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_PUNCH} DIBUTTON_FIGHTINGH_KICK = $08000402; (* Kick *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_KICK} DIBUTTON_FIGHTINGH_BLOCK = $08000403; (* Block *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_BLOCK} DIBUTTON_FIGHTINGH_CROUCH = $08000404; (* Crouch *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_CROUCH} DIBUTTON_FIGHTINGH_JUMP = $08000405; (* Jump *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_JUMP} DIBUTTON_FIGHTINGH_SPECIAL1 = $08000406; (* Apply first special move *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_SPECIAL1} DIBUTTON_FIGHTINGH_SPECIAL2 = $08000407; (* Apply second special move *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_SPECIAL2} DIBUTTON_FIGHTINGH_MENU = $080004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_MENU} (*--- Priority 2 controls ---*) DIBUTTON_FIGHTINGH_SELECT = $08004408; (* Select special move *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_SELECT} DIHATSWITCH_FIGHTINGH_SLIDE = $08004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FIGHTINGH_SLIDE} DIBUTTON_FIGHTINGH_DISPLAY = $08004409; (* Shows next on-screen display option *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_DISPLAY} DIAXIS_FIGHTINGH_ROTATE = $08024203; (* Rotate - Turn body left/right *) {$EXTERNALSYM DIAXIS_FIGHTINGH_ROTATE} DIBUTTON_FIGHTINGH_DODGE = $0800440A; (* Dodge *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_DODGE} DIBUTTON_FIGHTINGH_LEFT_LINK = $0800C4E4; (* Fallback left sidestep button *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_LEFT_LINK} DIBUTTON_FIGHTINGH_RIGHT_LINK = $0800C4EC; (* Fallback right sidestep button *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_RIGHT_LINK} DIBUTTON_FIGHTINGH_FORWARD_LINK = $080144E0; (* Fallback forward button *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_FORWARD_LINK} DIBUTTON_FIGHTINGH_BACKWARD_LINK = $080144E8; (* Fallback backward button *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_BACKWARD_LINK} DIBUTTON_FIGHTINGH_DEVICE = $080044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_DEVICE} DIBUTTON_FIGHTINGH_PAUSE = $080044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FIGHTINGH_PAUSE} (*--- Fighting - First Person Shooting Navigation and combat are primary objectives ---*) DIVIRTUAL_FIGHTING_FPS = $09000000; {$EXTERNALSYM DIVIRTUAL_FIGHTING_FPS} DIAXIS_FPS_ROTATE = $09008201; (* Rotate character left/right *) {$EXTERNALSYM DIAXIS_FPS_ROTATE} DIAXIS_FPS_MOVE = $09010202; (* Move forward/backward *) {$EXTERNALSYM DIAXIS_FPS_MOVE} DIBUTTON_FPS_FIRE = $09000401; (* Fire *) {$EXTERNALSYM DIBUTTON_FPS_FIRE} DIBUTTON_FPS_WEAPONS = $09000402; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_FPS_WEAPONS} DIBUTTON_FPS_APPLY = $09000403; (* Use item *) {$EXTERNALSYM DIBUTTON_FPS_APPLY} DIBUTTON_FPS_SELECT = $09000404; (* Select next inventory item *) {$EXTERNALSYM DIBUTTON_FPS_SELECT} DIBUTTON_FPS_CROUCH = $09000405; (* Crouch/ climb down/ swim down *) {$EXTERNALSYM DIBUTTON_FPS_CROUCH} DIBUTTON_FPS_JUMP = $09000406; (* Jump/ climb up/ swim up *) {$EXTERNALSYM DIBUTTON_FPS_JUMP} DIAXIS_FPS_LOOKUPDOWN = $09018203; (* Look up / down *) {$EXTERNALSYM DIAXIS_FPS_LOOKUPDOWN} DIBUTTON_FPS_STRAFE = $09000407; (* Enable strafing while active *) {$EXTERNALSYM DIBUTTON_FPS_STRAFE} DIBUTTON_FPS_MENU = $090004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FPS_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_FPS_GLANCE = $09004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FPS_GLANCE} DIBUTTON_FPS_DISPLAY = $09004408; (* Shows next on-screen display option/ map *) {$EXTERNALSYM DIBUTTON_FPS_DISPLAY} DIAXIS_FPS_SIDESTEP = $09024204; (* Sidestep *) {$EXTERNALSYM DIAXIS_FPS_SIDESTEP} DIBUTTON_FPS_DODGE = $09004409; (* Dodge *) {$EXTERNALSYM DIBUTTON_FPS_DODGE} DIBUTTON_FPS_GLANCEL = $0900440A; (* Glance Left *) {$EXTERNALSYM DIBUTTON_FPS_GLANCEL} DIBUTTON_FPS_GLANCER = $0900440B; (* Glance Right *) {$EXTERNALSYM DIBUTTON_FPS_GLANCER} DIBUTTON_FPS_FIRESECONDARY = $0900440C; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_FPS_FIRESECONDARY} DIBUTTON_FPS_ROTATE_LEFT_LINK = $0900C4E4; (* Fallback rotate left button *) {$EXTERNALSYM DIBUTTON_FPS_ROTATE_LEFT_LINK} DIBUTTON_FPS_ROTATE_RIGHT_LINK = $0900C4EC; (* Fallback rotate right button *) {$EXTERNALSYM DIBUTTON_FPS_ROTATE_RIGHT_LINK} DIBUTTON_FPS_FORWARD_LINK = $090144E0; (* Fallback forward button *) {$EXTERNALSYM DIBUTTON_FPS_FORWARD_LINK} DIBUTTON_FPS_BACKWARD_LINK = $090144E8; (* Fallback backward button *) {$EXTERNALSYM DIBUTTON_FPS_BACKWARD_LINK} DIBUTTON_FPS_GLANCE_UP_LINK = $0901C4E0; (* Fallback look up button *) {$EXTERNALSYM DIBUTTON_FPS_GLANCE_UP_LINK} DIBUTTON_FPS_GLANCE_DOWN_LINK = $0901C4E8; (* Fallback look down button *) {$EXTERNALSYM DIBUTTON_FPS_GLANCE_DOWN_LINK} DIBUTTON_FPS_STEP_LEFT_LINK = $090244E4; (* Fallback step left button *) {$EXTERNALSYM DIBUTTON_FPS_STEP_LEFT_LINK} DIBUTTON_FPS_STEP_RIGHT_LINK = $090244EC; (* Fallback step right button *) {$EXTERNALSYM DIBUTTON_FPS_STEP_RIGHT_LINK} DIBUTTON_FPS_DEVICE = $090044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FPS_DEVICE} DIBUTTON_FPS_PAUSE = $090044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FPS_PAUSE} (*--- Fighting - Third Person action Perspective of camera is behind the main character ---*) DIVIRTUAL_FIGHTING_THIRDPERSON = $0A000000; {$EXTERNALSYM DIVIRTUAL_FIGHTING_THIRDPERSON} DIAXIS_TPS_TURN = $0A020201; (* Turn left/right *) {$EXTERNALSYM DIAXIS_TPS_TURN} DIAXIS_TPS_MOVE = $0A010202; (* Move forward/backward *) {$EXTERNALSYM DIAXIS_TPS_MOVE} DIBUTTON_TPS_RUN = $0A000401; (* Run or walk toggle switch *) {$EXTERNALSYM DIBUTTON_TPS_RUN} DIBUTTON_TPS_ACTION = $0A000402; (* Action Button *) {$EXTERNALSYM DIBUTTON_TPS_ACTION} DIBUTTON_TPS_SELECT = $0A000403; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_TPS_SELECT} DIBUTTON_TPS_USE = $0A000404; (* Use inventory item currently selected *) {$EXTERNALSYM DIBUTTON_TPS_USE} DIBUTTON_TPS_JUMP = $0A000405; (* Character Jumps *) {$EXTERNALSYM DIBUTTON_TPS_JUMP} DIBUTTON_TPS_MENU = $0A0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_TPS_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_TPS_GLANCE = $0A004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_TPS_GLANCE} DIBUTTON_TPS_VIEW = $0A004406; (* Select camera view *) {$EXTERNALSYM DIBUTTON_TPS_VIEW} DIBUTTON_TPS_STEPLEFT = $0A004407; (* Character takes a left step *) {$EXTERNALSYM DIBUTTON_TPS_STEPLEFT} DIBUTTON_TPS_STEPRIGHT = $0A004408; (* Character takes a right step *) {$EXTERNALSYM DIBUTTON_TPS_STEPRIGHT} DIAXIS_TPS_STEP = $0A00C203; (* Character steps left/right *) {$EXTERNALSYM DIAXIS_TPS_STEP} DIBUTTON_TPS_DODGE = $0A004409; (* Character dodges or ducks *) {$EXTERNALSYM DIBUTTON_TPS_DODGE} DIBUTTON_TPS_INVENTORY = $0A00440A; (* Cycle through inventory *) {$EXTERNALSYM DIBUTTON_TPS_INVENTORY} DIBUTTON_TPS_TURN_LEFT_LINK = $0A0244E4; (* Fallback turn left button *) {$EXTERNALSYM DIBUTTON_TPS_TURN_LEFT_LINK} DIBUTTON_TPS_TURN_RIGHT_LINK = $0A0244EC; (* Fallback turn right button *) {$EXTERNALSYM DIBUTTON_TPS_TURN_RIGHT_LINK} DIBUTTON_TPS_FORWARD_LINK = $0A0144E0; (* Fallback forward button *) {$EXTERNALSYM DIBUTTON_TPS_FORWARD_LINK} DIBUTTON_TPS_BACKWARD_LINK = $0A0144E8; (* Fallback backward button *) {$EXTERNALSYM DIBUTTON_TPS_BACKWARD_LINK} DIBUTTON_TPS_GLANCE_UP_LINK = $0A07C4E0; (* Fallback look up button *) {$EXTERNALSYM DIBUTTON_TPS_GLANCE_UP_LINK} DIBUTTON_TPS_GLANCE_DOWN_LINK = $0A07C4E8; (* Fallback look down button *) {$EXTERNALSYM DIBUTTON_TPS_GLANCE_DOWN_LINK} DIBUTTON_TPS_GLANCE_LEFT_LINK = $0A07C4E4; (* Fallback glance up button *) {$EXTERNALSYM DIBUTTON_TPS_GLANCE_LEFT_LINK} DIBUTTON_TPS_GLANCE_RIGHT_LINK = $0A07C4EC; (* Fallback glance right button *) {$EXTERNALSYM DIBUTTON_TPS_GLANCE_RIGHT_LINK} DIBUTTON_TPS_DEVICE = $0A0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_TPS_DEVICE} DIBUTTON_TPS_PAUSE = $0A0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_TPS_PAUSE} (*--- Strategy - Role Playing Navigation and problem solving are primary actions ---*) DIVIRTUAL_STRATEGY_ROLEPLAYING = $0B000000; {$EXTERNALSYM DIVIRTUAL_STRATEGY_ROLEPLAYING} DIAXIS_STRATEGYR_LATERAL = $0B008201; (* sidestep - left/right *) {$EXTERNALSYM DIAXIS_STRATEGYR_LATERAL} DIAXIS_STRATEGYR_MOVE = $0B010202; (* move forward/backward *) {$EXTERNALSYM DIAXIS_STRATEGYR_MOVE} DIBUTTON_STRATEGYR_GET = $0B000401; (* Acquire item *) {$EXTERNALSYM DIBUTTON_STRATEGYR_GET} DIBUTTON_STRATEGYR_APPLY = $0B000402; (* Use selected item *) {$EXTERNALSYM DIBUTTON_STRATEGYR_APPLY} DIBUTTON_STRATEGYR_SELECT = $0B000403; (* Select nextitem *) {$EXTERNALSYM DIBUTTON_STRATEGYR_SELECT} DIBUTTON_STRATEGYR_ATTACK = $0B000404; (* Attack *) {$EXTERNALSYM DIBUTTON_STRATEGYR_ATTACK} DIBUTTON_STRATEGYR_CAST = $0B000405; (* Cast Spell *) {$EXTERNALSYM DIBUTTON_STRATEGYR_CAST} DIBUTTON_STRATEGYR_CROUCH = $0B000406; (* Crouch *) {$EXTERNALSYM DIBUTTON_STRATEGYR_CROUCH} DIBUTTON_STRATEGYR_JUMP = $0B000407; (* Jump *) {$EXTERNALSYM DIBUTTON_STRATEGYR_JUMP} DIBUTTON_STRATEGYR_MENU = $0B0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_STRATEGYR_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_STRATEGYR_GLANCE = $0B004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_STRATEGYR_GLANCE} DIBUTTON_STRATEGYR_MAP = $0B004408; (* Cycle through map options *) {$EXTERNALSYM DIBUTTON_STRATEGYR_MAP} DIBUTTON_STRATEGYR_DISPLAY = $0B004409; (* Shows next on-screen display option *) {$EXTERNALSYM DIBUTTON_STRATEGYR_DISPLAY} DIAXIS_STRATEGYR_ROTATE = $0B024203; (* Turn body left/right *) {$EXTERNALSYM DIAXIS_STRATEGYR_ROTATE} DIBUTTON_STRATEGYR_LEFT_LINK = $0B00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_LEFT_LINK} DIBUTTON_STRATEGYR_RIGHT_LINK = $0B00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_RIGHT_LINK} DIBUTTON_STRATEGYR_FORWARD_LINK = $0B0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_FORWARD_LINK} DIBUTTON_STRATEGYR_BACK_LINK = $0B0144E8; (* Fallback move backward button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_BACK_LINK} DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK = $0B0244E4; (* Fallback turn body left button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK} DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK = $0B0244EC; (* Fallback turn body right button *) {$EXTERNALSYM DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK} DIBUTTON_STRATEGYR_DEVICE = $0B0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_STRATEGYR_DEVICE} DIBUTTON_STRATEGYR_PAUSE = $0B0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_STRATEGYR_PAUSE} (*--- Strategy - Turn based Navigation and problem solving are primary actions ---*) DIVIRTUAL_STRATEGY_TURN = $0C000000; {$EXTERNALSYM DIVIRTUAL_STRATEGY_TURN} DIAXIS_STRATEGYT_LATERAL = $0C008201; (* Sidestep left/right *) {$EXTERNALSYM DIAXIS_STRATEGYT_LATERAL} DIAXIS_STRATEGYT_MOVE = $0C010202; (* Move forward/backwards *) {$EXTERNALSYM DIAXIS_STRATEGYT_MOVE} DIBUTTON_STRATEGYT_SELECT = $0C000401; (* Select unit or object *) {$EXTERNALSYM DIBUTTON_STRATEGYT_SELECT} DIBUTTON_STRATEGYT_INSTRUCT = $0C000402; (* Cycle through instructions *) {$EXTERNALSYM DIBUTTON_STRATEGYT_INSTRUCT} DIBUTTON_STRATEGYT_APPLY = $0C000403; (* Apply selected instruction *) {$EXTERNALSYM DIBUTTON_STRATEGYT_APPLY} DIBUTTON_STRATEGYT_TEAM = $0C000404; (* Select next team / cycle through all *) {$EXTERNALSYM DIBUTTON_STRATEGYT_TEAM} DIBUTTON_STRATEGYT_TURN = $0C000405; (* Indicate turn over *) {$EXTERNALSYM DIBUTTON_STRATEGYT_TURN} DIBUTTON_STRATEGYT_MENU = $0C0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_STRATEGYT_MENU} (*--- Priority 2 controls ---*) DIBUTTON_STRATEGYT_ZOOM = $0C004406; (* Zoom - in / out *) {$EXTERNALSYM DIBUTTON_STRATEGYT_ZOOM} DIBUTTON_STRATEGYT_MAP = $0C004407; (* cycle through map options *) {$EXTERNALSYM DIBUTTON_STRATEGYT_MAP} DIBUTTON_STRATEGYT_DISPLAY = $0C004408; (* shows next on-screen display options *) {$EXTERNALSYM DIBUTTON_STRATEGYT_DISPLAY} DIBUTTON_STRATEGYT_LEFT_LINK = $0C00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_STRATEGYT_LEFT_LINK} DIBUTTON_STRATEGYT_RIGHT_LINK = $0C00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_STRATEGYT_RIGHT_LINK} DIBUTTON_STRATEGYT_FORWARD_LINK = $0C0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_STRATEGYT_FORWARD_LINK} DIBUTTON_STRATEGYT_BACK_LINK = $0C0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_STRATEGYT_BACK_LINK} DIBUTTON_STRATEGYT_DEVICE = $0C0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_STRATEGYT_DEVICE} DIBUTTON_STRATEGYT_PAUSE = $0C0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_STRATEGYT_PAUSE} (*--- Sports - Hunting Hunting ---*) DIVIRTUAL_SPORTS_HUNTING = $0D000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_HUNTING} DIAXIS_HUNTING_LATERAL = $0D008201; (* sidestep left/right *) {$EXTERNALSYM DIAXIS_HUNTING_LATERAL} DIAXIS_HUNTING_MOVE = $0D010202; (* move forward/backwards *) {$EXTERNALSYM DIAXIS_HUNTING_MOVE} DIBUTTON_HUNTING_FIRE = $0D000401; (* Fire selected weapon *) {$EXTERNALSYM DIBUTTON_HUNTING_FIRE} DIBUTTON_HUNTING_AIM = $0D000402; (* Select aim/move *) {$EXTERNALSYM DIBUTTON_HUNTING_AIM} DIBUTTON_HUNTING_WEAPON = $0D000403; (* Select next weapon *) {$EXTERNALSYM DIBUTTON_HUNTING_WEAPON} DIBUTTON_HUNTING_BINOCULAR = $0D000404; (* Look through Binoculars *) {$EXTERNALSYM DIBUTTON_HUNTING_BINOCULAR} DIBUTTON_HUNTING_CALL = $0D000405; (* Make animal call *) {$EXTERNALSYM DIBUTTON_HUNTING_CALL} DIBUTTON_HUNTING_MAP = $0D000406; (* View Map *) {$EXTERNALSYM DIBUTTON_HUNTING_MAP} DIBUTTON_HUNTING_SPECIAL = $0D000407; (* Special game operation *) {$EXTERNALSYM DIBUTTON_HUNTING_SPECIAL} DIBUTTON_HUNTING_MENU = $0D0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_HUNTING_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_HUNTING_GLANCE = $0D004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_HUNTING_GLANCE} DIBUTTON_HUNTING_DISPLAY = $0D004408; (* show next on-screen display option *) {$EXTERNALSYM DIBUTTON_HUNTING_DISPLAY} DIAXIS_HUNTING_ROTATE = $0D024203; (* Turn body left/right *) {$EXTERNALSYM DIAXIS_HUNTING_ROTATE} DIBUTTON_HUNTING_CROUCH = $0D004409; (* Crouch/ Climb / Swim down *) {$EXTERNALSYM DIBUTTON_HUNTING_CROUCH} DIBUTTON_HUNTING_JUMP = $0D00440A; (* Jump/ Climb up / Swim up *) {$EXTERNALSYM DIBUTTON_HUNTING_JUMP} DIBUTTON_HUNTING_FIRESECONDARY = $0D00440B; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_HUNTING_FIRESECONDARY} DIBUTTON_HUNTING_LEFT_LINK = $0D00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_HUNTING_LEFT_LINK} DIBUTTON_HUNTING_RIGHT_LINK = $0D00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_HUNTING_RIGHT_LINK} DIBUTTON_HUNTING_FORWARD_LINK = $0D0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_HUNTING_FORWARD_LINK} DIBUTTON_HUNTING_BACK_LINK = $0D0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_HUNTING_BACK_LINK} DIBUTTON_HUNTING_ROTATE_LEFT_LINK = $0D0244E4; (* Fallback turn body left button *) {$EXTERNALSYM DIBUTTON_HUNTING_ROTATE_LEFT_LINK} DIBUTTON_HUNTING_ROTATE_RIGHT_LINK = $0D0244EC; (* Fallback turn body right button *) {$EXTERNALSYM DIBUTTON_HUNTING_ROTATE_RIGHT_LINK} DIBUTTON_HUNTING_DEVICE = $0D0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_HUNTING_DEVICE} DIBUTTON_HUNTING_PAUSE = $0D0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_HUNTING_PAUSE} (*--- Sports - Fishing Catching Fish is primary objective ---*) DIVIRTUAL_SPORTS_FISHING = $0E000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_FISHING} DIAXIS_FISHING_LATERAL = $0E008201; (* sidestep left/right *) {$EXTERNALSYM DIAXIS_FISHING_LATERAL} DIAXIS_FISHING_MOVE = $0E010202; (* move forward/backwards *) {$EXTERNALSYM DIAXIS_FISHING_MOVE} DIBUTTON_FISHING_CAST = $0E000401; (* Cast line *) {$EXTERNALSYM DIBUTTON_FISHING_CAST} DIBUTTON_FISHING_TYPE = $0E000402; (* Select cast type *) {$EXTERNALSYM DIBUTTON_FISHING_TYPE} DIBUTTON_FISHING_BINOCULAR = $0E000403; (* Look through Binocular *) {$EXTERNALSYM DIBUTTON_FISHING_BINOCULAR} DIBUTTON_FISHING_BAIT = $0E000404; (* Select type of Bait *) {$EXTERNALSYM DIBUTTON_FISHING_BAIT} DIBUTTON_FISHING_MAP = $0E000405; (* View Map *) {$EXTERNALSYM DIBUTTON_FISHING_MAP} DIBUTTON_FISHING_MENU = $0E0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FISHING_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_FISHING_GLANCE = $0E004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_FISHING_GLANCE} DIBUTTON_FISHING_DISPLAY = $0E004406; (* Show next on-screen display option *) {$EXTERNALSYM DIBUTTON_FISHING_DISPLAY} DIAXIS_FISHING_ROTATE = $0E024203; (* Turn character left / right *) {$EXTERNALSYM DIAXIS_FISHING_ROTATE} DIBUTTON_FISHING_CROUCH = $0E004407; (* Crouch/ Climb / Swim down *) {$EXTERNALSYM DIBUTTON_FISHING_CROUCH} DIBUTTON_FISHING_JUMP = $0E004408; (* Jump/ Climb up / Swim up *) {$EXTERNALSYM DIBUTTON_FISHING_JUMP} DIBUTTON_FISHING_LEFT_LINK = $0E00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_FISHING_LEFT_LINK} DIBUTTON_FISHING_RIGHT_LINK = $0E00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_FISHING_RIGHT_LINK} DIBUTTON_FISHING_FORWARD_LINK = $0E0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_FISHING_FORWARD_LINK} DIBUTTON_FISHING_BACK_LINK = $0E0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_FISHING_BACK_LINK} DIBUTTON_FISHING_ROTATE_LEFT_LINK = $0E0244E4; (* Fallback turn body left button *) {$EXTERNALSYM DIBUTTON_FISHING_ROTATE_LEFT_LINK} DIBUTTON_FISHING_ROTATE_RIGHT_LINK = $0E0244EC; (* Fallback turn body right button *) {$EXTERNALSYM DIBUTTON_FISHING_ROTATE_RIGHT_LINK} DIBUTTON_FISHING_DEVICE = $0E0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FISHING_DEVICE} DIBUTTON_FISHING_PAUSE = $0E0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FISHING_PAUSE} (*--- Sports - Baseball - Batting Batter control is primary objective ---*) DIVIRTUAL_SPORTS_BASEBALL_BAT = $0F000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_BAT} DIAXIS_BASEBALLB_LATERAL = $0F008201; (* Aim left / right *) {$EXTERNALSYM DIAXIS_BASEBALLB_LATERAL} DIAXIS_BASEBALLB_MOVE = $0F010202; (* Aim up / down *) {$EXTERNALSYM DIAXIS_BASEBALLB_MOVE} DIBUTTON_BASEBALLB_SELECT = $0F000401; (* cycle through swing options *) {$EXTERNALSYM DIBUTTON_BASEBALLB_SELECT} DIBUTTON_BASEBALLB_NORMAL = $0F000402; (* normal swing *) {$EXTERNALSYM DIBUTTON_BASEBALLB_NORMAL} DIBUTTON_BASEBALLB_POWER = $0F000403; (* swing for the fence *) {$EXTERNALSYM DIBUTTON_BASEBALLB_POWER} DIBUTTON_BASEBALLB_BUNT = $0F000404; (* bunt *) {$EXTERNALSYM DIBUTTON_BASEBALLB_BUNT} DIBUTTON_BASEBALLB_STEAL = $0F000405; (* Base runner attempts to steal a base *) {$EXTERNALSYM DIBUTTON_BASEBALLB_STEAL} DIBUTTON_BASEBALLB_BURST = $0F000406; (* Base runner invokes burst of speed *) {$EXTERNALSYM DIBUTTON_BASEBALLB_BURST} DIBUTTON_BASEBALLB_SLIDE = $0F000407; (* Base runner slides into base *) {$EXTERNALSYM DIBUTTON_BASEBALLB_SLIDE} DIBUTTON_BASEBALLB_CONTACT = $0F000408; (* Contact swing *) {$EXTERNALSYM DIBUTTON_BASEBALLB_CONTACT} DIBUTTON_BASEBALLB_MENU = $0F0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BASEBALLB_MENU} (*--- Priority 2 controls ---*) DIBUTTON_BASEBALLB_NOSTEAL = $0F004409; (* Base runner goes back to a base *) {$EXTERNALSYM DIBUTTON_BASEBALLB_NOSTEAL} DIBUTTON_BASEBALLB_BOX = $0F00440A; (* Enter or exit batting box *) {$EXTERNALSYM DIBUTTON_BASEBALLB_BOX} DIBUTTON_BASEBALLB_LEFT_LINK = $0F00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_BASEBALLB_LEFT_LINK} DIBUTTON_BASEBALLB_RIGHT_LINK = $0F00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_BASEBALLB_RIGHT_LINK} DIBUTTON_BASEBALLB_FORWARD_LINK = $0F0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_BASEBALLB_FORWARD_LINK} DIBUTTON_BASEBALLB_BACK_LINK = $0F0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_BASEBALLB_BACK_LINK} DIBUTTON_BASEBALLB_DEVICE = $0F0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BASEBALLB_DEVICE} DIBUTTON_BASEBALLB_PAUSE = $0F0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BASEBALLB_PAUSE} (*--- Sports - Baseball - Pitching Pitcher control is primary objective ---*) DIVIRTUAL_SPORTS_BASEBALL_PITCH = $10000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_PITCH} DIAXIS_BASEBALLP_LATERAL = $10008201; (* Aim left / right *) {$EXTERNALSYM DIAXIS_BASEBALLP_LATERAL} DIAXIS_BASEBALLP_MOVE = $10010202; (* Aim up / down *) {$EXTERNALSYM DIAXIS_BASEBALLP_MOVE} DIBUTTON_BASEBALLP_SELECT = $10000401; (* cycle through pitch selections *) {$EXTERNALSYM DIBUTTON_BASEBALLP_SELECT} DIBUTTON_BASEBALLP_PITCH = $10000402; (* throw pitch *) {$EXTERNALSYM DIBUTTON_BASEBALLP_PITCH} DIBUTTON_BASEBALLP_BASE = $10000403; (* select base to throw to *) {$EXTERNALSYM DIBUTTON_BASEBALLP_BASE} DIBUTTON_BASEBALLP_THROW = $10000404; (* throw to base *) {$EXTERNALSYM DIBUTTON_BASEBALLP_THROW} DIBUTTON_BASEBALLP_FAKE = $10000405; (* Fake a throw to a base *) {$EXTERNALSYM DIBUTTON_BASEBALLP_FAKE} DIBUTTON_BASEBALLP_MENU = $100004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BASEBALLP_MENU} (*--- Priority 2 controls ---*) DIBUTTON_BASEBALLP_WALK = $10004406; (* Throw intentional walk / pitch out *) {$EXTERNALSYM DIBUTTON_BASEBALLP_WALK} DIBUTTON_BASEBALLP_LOOK = $10004407; (* Look at runners on bases *) {$EXTERNALSYM DIBUTTON_BASEBALLP_LOOK} DIBUTTON_BASEBALLP_LEFT_LINK = $1000C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_BASEBALLP_LEFT_LINK} DIBUTTON_BASEBALLP_RIGHT_LINK = $1000C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_BASEBALLP_RIGHT_LINK} DIBUTTON_BASEBALLP_FORWARD_LINK = $100144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_BASEBALLP_FORWARD_LINK} DIBUTTON_BASEBALLP_BACK_LINK = $100144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_BASEBALLP_BACK_LINK} DIBUTTON_BASEBALLP_DEVICE = $100044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BASEBALLP_DEVICE} DIBUTTON_BASEBALLP_PAUSE = $100044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BASEBALLP_PAUSE} (*--- Sports - Baseball - Fielding Fielder control is primary objective ---*) DIVIRTUAL_SPORTS_BASEBALL_FIELD = $11000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BASEBALL_FIELD} DIAXIS_BASEBALLF_LATERAL = $11008201; (* Aim left / right *) {$EXTERNALSYM DIAXIS_BASEBALLF_LATERAL} DIAXIS_BASEBALLF_MOVE = $11010202; (* Aim up / down *) {$EXTERNALSYM DIAXIS_BASEBALLF_MOVE} DIBUTTON_BASEBALLF_NEAREST = $11000401; (* Switch to fielder nearest to the ball *) {$EXTERNALSYM DIBUTTON_BASEBALLF_NEAREST} DIBUTTON_BASEBALLF_THROW1 = $11000402; (* Make conservative throw *) {$EXTERNALSYM DIBUTTON_BASEBALLF_THROW1} DIBUTTON_BASEBALLF_THROW2 = $11000403; (* Make aggressive throw *) {$EXTERNALSYM DIBUTTON_BASEBALLF_THROW2} DIBUTTON_BASEBALLF_BURST = $11000404; (* Invoke burst of speed *) {$EXTERNALSYM DIBUTTON_BASEBALLF_BURST} DIBUTTON_BASEBALLF_JUMP = $11000405; (* Jump to catch ball *) {$EXTERNALSYM DIBUTTON_BASEBALLF_JUMP} DIBUTTON_BASEBALLF_DIVE = $11000406; (* Dive to catch ball *) {$EXTERNALSYM DIBUTTON_BASEBALLF_DIVE} DIBUTTON_BASEBALLF_MENU = $110004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BASEBALLF_MENU} (*--- Priority 2 controls ---*) DIBUTTON_BASEBALLF_SHIFTIN = $11004407; (* Shift the infield positioning *) {$EXTERNALSYM DIBUTTON_BASEBALLF_SHIFTIN} DIBUTTON_BASEBALLF_SHIFTOUT = $11004408; (* Shift the outfield positioning *) {$EXTERNALSYM DIBUTTON_BASEBALLF_SHIFTOUT} DIBUTTON_BASEBALLF_AIM_LEFT_LINK = $1100C4E4; (* Fallback aim left button *) {$EXTERNALSYM DIBUTTON_BASEBALLF_AIM_LEFT_LINK} DIBUTTON_BASEBALLF_AIM_RIGHT_LINK = $1100C4EC; (* Fallback aim right button *) {$EXTERNALSYM DIBUTTON_BASEBALLF_AIM_RIGHT_LINK} DIBUTTON_BASEBALLF_FORWARD_LINK = $110144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_BASEBALLF_FORWARD_LINK} DIBUTTON_BASEBALLF_BACK_LINK = $110144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_BASEBALLF_BACK_LINK} DIBUTTON_BASEBALLF_DEVICE = $110044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BASEBALLF_DEVICE} DIBUTTON_BASEBALLF_PAUSE = $110044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BASEBALLF_PAUSE} (*--- Sports - Basketball - Offense Offense ---*) DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE = $12000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE} DIAXIS_BBALLO_LATERAL = $12008201; (* left / right *) {$EXTERNALSYM DIAXIS_BBALLO_LATERAL} DIAXIS_BBALLO_MOVE = $12010202; (* up / down *) {$EXTERNALSYM DIAXIS_BBALLO_MOVE} DIBUTTON_BBALLO_SHOOT = $12000401; (* shoot basket *) {$EXTERNALSYM DIBUTTON_BBALLO_SHOOT} DIBUTTON_BBALLO_DUNK = $12000402; (* dunk basket *) {$EXTERNALSYM DIBUTTON_BBALLO_DUNK} DIBUTTON_BBALLO_PASS = $12000403; (* throw pass *) {$EXTERNALSYM DIBUTTON_BBALLO_PASS} DIBUTTON_BBALLO_FAKE = $12000404; (* fake shot or pass *) {$EXTERNALSYM DIBUTTON_BBALLO_FAKE} DIBUTTON_BBALLO_SPECIAL = $12000405; (* apply special move *) {$EXTERNALSYM DIBUTTON_BBALLO_SPECIAL} DIBUTTON_BBALLO_PLAYER = $12000406; (* select next player *) {$EXTERNALSYM DIBUTTON_BBALLO_PLAYER} DIBUTTON_BBALLO_BURST = $12000407; (* invoke burst *) {$EXTERNALSYM DIBUTTON_BBALLO_BURST} DIBUTTON_BBALLO_CALL = $12000408; (* call for ball / pass to me *) {$EXTERNALSYM DIBUTTON_BBALLO_CALL} DIBUTTON_BBALLO_MENU = $120004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BBALLO_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_BBALLO_GLANCE = $12004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_BBALLO_GLANCE} DIBUTTON_BBALLO_SCREEN = $12004409; (* Call for screen *) {$EXTERNALSYM DIBUTTON_BBALLO_SCREEN} DIBUTTON_BBALLO_PLAY = $1200440A; (* Call for specific offensive play *) {$EXTERNALSYM DIBUTTON_BBALLO_PLAY} DIBUTTON_BBALLO_JAB = $1200440B; (* Initiate fake drive to basket *) {$EXTERNALSYM DIBUTTON_BBALLO_JAB} DIBUTTON_BBALLO_POST = $1200440C; (* Perform post move *) {$EXTERNALSYM DIBUTTON_BBALLO_POST} DIBUTTON_BBALLO_TIMEOUT = $1200440D; (* Time Out *) {$EXTERNALSYM DIBUTTON_BBALLO_TIMEOUT} DIBUTTON_BBALLO_SUBSTITUTE = $1200440E; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_BBALLO_SUBSTITUTE} DIBUTTON_BBALLO_LEFT_LINK = $1200C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_BBALLO_LEFT_LINK} DIBUTTON_BBALLO_RIGHT_LINK = $1200C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_BBALLO_RIGHT_LINK} DIBUTTON_BBALLO_FORWARD_LINK = $120144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_BBALLO_FORWARD_LINK} DIBUTTON_BBALLO_BACK_LINK = $120144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_BBALLO_BACK_LINK} DIBUTTON_BBALLO_DEVICE = $120044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BBALLO_DEVICE} DIBUTTON_BBALLO_PAUSE = $120044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BBALLO_PAUSE} (*--- Sports - Basketball - Defense Defense ---*) DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE = $13000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE} DIAXIS_BBALLD_LATERAL = $13008201; (* left / right *) {$EXTERNALSYM DIAXIS_BBALLD_LATERAL} DIAXIS_BBALLD_MOVE = $13010202; (* up / down *) {$EXTERNALSYM DIAXIS_BBALLD_MOVE} DIBUTTON_BBALLD_JUMP = $13000401; (* jump to block shot *) {$EXTERNALSYM DIBUTTON_BBALLD_JUMP} DIBUTTON_BBALLD_STEAL = $13000402; (* attempt to steal ball *) {$EXTERNALSYM DIBUTTON_BBALLD_STEAL} DIBUTTON_BBALLD_FAKE = $13000403; (* fake block or steal *) {$EXTERNALSYM DIBUTTON_BBALLD_FAKE} DIBUTTON_BBALLD_SPECIAL = $13000404; (* apply special move *) {$EXTERNALSYM DIBUTTON_BBALLD_SPECIAL} DIBUTTON_BBALLD_PLAYER = $13000405; (* select next player *) {$EXTERNALSYM DIBUTTON_BBALLD_PLAYER} DIBUTTON_BBALLD_BURST = $13000406; (* invoke burst *) {$EXTERNALSYM DIBUTTON_BBALLD_BURST} DIBUTTON_BBALLD_PLAY = $13000407; (* call for specific defensive play *) {$EXTERNALSYM DIBUTTON_BBALLD_PLAY} DIBUTTON_BBALLD_MENU = $130004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BBALLD_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_BBALLD_GLANCE = $13004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_BBALLD_GLANCE} DIBUTTON_BBALLD_TIMEOUT = $13004408; (* Time Out *) {$EXTERNALSYM DIBUTTON_BBALLD_TIMEOUT} DIBUTTON_BBALLD_SUBSTITUTE = $13004409; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_BBALLD_SUBSTITUTE} DIBUTTON_BBALLD_LEFT_LINK = $1300C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_BBALLD_LEFT_LINK} DIBUTTON_BBALLD_RIGHT_LINK = $1300C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_BBALLD_RIGHT_LINK} DIBUTTON_BBALLD_FORWARD_LINK = $130144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_BBALLD_FORWARD_LINK} DIBUTTON_BBALLD_BACK_LINK = $130144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_BBALLD_BACK_LINK} DIBUTTON_BBALLD_DEVICE = $130044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BBALLD_DEVICE} DIBUTTON_BBALLD_PAUSE = $130044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BBALLD_PAUSE} (*--- Sports - Football - Play Play selection ---*) DIVIRTUAL_SPORTS_FOOTBALL_FIELD = $14000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_FIELD} DIBUTTON_FOOTBALLP_PLAY = $14000401; (* cycle through available plays *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_PLAY} DIBUTTON_FOOTBALLP_SELECT = $14000402; (* select play *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_SELECT} DIBUTTON_FOOTBALLP_HELP = $14000403; (* Bring up pop-up help *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_HELP} DIBUTTON_FOOTBALLP_MENU = $140004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_MENU} (*--- Priority 2 controls ---*) DIBUTTON_FOOTBALLP_DEVICE = $140044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_DEVICE} DIBUTTON_FOOTBALLP_PAUSE = $140044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FOOTBALLP_PAUSE} (*--- Sports - Football - QB Offense: Quarterback / Kicker ---*) DIVIRTUAL_SPORTS_FOOTBALL_QBCK = $15000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_QBCK} DIAXIS_FOOTBALLQ_LATERAL = $15008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_FOOTBALLQ_LATERAL} DIAXIS_FOOTBALLQ_MOVE = $15010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_FOOTBALLQ_MOVE} DIBUTTON_FOOTBALLQ_SELECT = $15000401; (* Select *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SELECT} DIBUTTON_FOOTBALLQ_SNAP = $15000402; (* snap ball - start play *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SNAP} DIBUTTON_FOOTBALLQ_JUMP = $15000403; (* jump over defender *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_JUMP} DIBUTTON_FOOTBALLQ_SLIDE = $15000404; (* Dive/Slide *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_SLIDE} DIBUTTON_FOOTBALLQ_PASS = $15000405; (* throws pass to receiver *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_PASS} DIBUTTON_FOOTBALLQ_FAKE = $15000406; (* pump fake pass or fake kick *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FAKE} DIBUTTON_FOOTBALLQ_MENU = $150004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_MENU} (*--- Priority 2 controls ---*) DIBUTTON_FOOTBALLQ_FAKESNAP = $15004407; (* Fake snap *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FAKESNAP} DIBUTTON_FOOTBALLQ_MOTION = $15004408; (* Send receivers in motion *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_MOTION} DIBUTTON_FOOTBALLQ_AUDIBLE = $15004409; (* Change offensive play at line of scrimmage *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_AUDIBLE} DIBUTTON_FOOTBALLQ_LEFT_LINK = $1500C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_LEFT_LINK} DIBUTTON_FOOTBALLQ_RIGHT_LINK = $1500C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_RIGHT_LINK} DIBUTTON_FOOTBALLQ_FORWARD_LINK = $150144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_FORWARD_LINK} DIBUTTON_FOOTBALLQ_BACK_LINK = $150144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_BACK_LINK} DIBUTTON_FOOTBALLQ_DEVICE = $150044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_DEVICE} DIBUTTON_FOOTBALLQ_PAUSE = $150044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FOOTBALLQ_PAUSE} (*--- Sports - Football - Offense Offense - Runner ---*) DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE = $16000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE} DIAXIS_FOOTBALLO_LATERAL = $16008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_FOOTBALLO_LATERAL} DIAXIS_FOOTBALLO_MOVE = $16010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_FOOTBALLO_MOVE} DIBUTTON_FOOTBALLO_JUMP = $16000401; (* jump or hurdle over defender *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_JUMP} DIBUTTON_FOOTBALLO_LEFTARM = $16000402; (* holds out left arm *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_LEFTARM} DIBUTTON_FOOTBALLO_RIGHTARM = $16000403; (* holds out right arm *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_RIGHTARM} DIBUTTON_FOOTBALLO_THROW = $16000404; (* throw pass or lateral ball to another runner *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_THROW} DIBUTTON_FOOTBALLO_SPIN = $16000405; (* Spin to avoid defenders *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_SPIN} DIBUTTON_FOOTBALLO_MENU = $160004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_MENU} (*--- Priority 2 controls ---*) DIBUTTON_FOOTBALLO_JUKE = $16004406; (* Use special move to avoid defenders *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_JUKE} DIBUTTON_FOOTBALLO_SHOULDER = $16004407; (* Lower shoulder to run over defenders *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_SHOULDER} DIBUTTON_FOOTBALLO_TURBO = $16004408; (* Speed burst past defenders *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_TURBO} DIBUTTON_FOOTBALLO_DIVE = $16004409; (* Dive over defenders *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_DIVE} DIBUTTON_FOOTBALLO_ZOOM = $1600440A; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_ZOOM} DIBUTTON_FOOTBALLO_SUBSTITUTE = $1600440B; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_SUBSTITUTE} DIBUTTON_FOOTBALLO_LEFT_LINK = $1600C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_LEFT_LINK} DIBUTTON_FOOTBALLO_RIGHT_LINK = $1600C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_RIGHT_LINK} DIBUTTON_FOOTBALLO_FORWARD_LINK = $160144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_FORWARD_LINK} DIBUTTON_FOOTBALLO_BACK_LINK = $160144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_BACK_LINK} DIBUTTON_FOOTBALLO_DEVICE = $160044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_DEVICE} DIBUTTON_FOOTBALLO_PAUSE = $160044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FOOTBALLO_PAUSE} (*--- Sports - Football - Defense Defense ---*) DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE = $17000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE} DIAXIS_FOOTBALLD_LATERAL = $17008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_FOOTBALLD_LATERAL} DIAXIS_FOOTBALLD_MOVE = $17010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_FOOTBALLD_MOVE} DIBUTTON_FOOTBALLD_PLAY = $17000401; (* cycle through available plays *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_PLAY} DIBUTTON_FOOTBALLD_SELECT = $17000402; (* select player closest to the ball *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_SELECT} DIBUTTON_FOOTBALLD_JUMP = $17000403; (* jump to intercept or block *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_JUMP} DIBUTTON_FOOTBALLD_TACKLE = $17000404; (* tackler runner *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_TACKLE} DIBUTTON_FOOTBALLD_FAKE = $17000405; (* hold down to fake tackle or intercept *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_FAKE} DIBUTTON_FOOTBALLD_SUPERTACKLE = $17000406; (* Initiate special tackle *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_SUPERTACKLE} DIBUTTON_FOOTBALLD_MENU = $170004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_MENU} (*--- Priority 2 controls ---*) DIBUTTON_FOOTBALLD_SPIN = $17004407; (* Spin to beat offensive line *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_SPIN} DIBUTTON_FOOTBALLD_SWIM = $17004408; (* Swim to beat the offensive line *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_SWIM} DIBUTTON_FOOTBALLD_BULLRUSH = $17004409; (* Bull rush the offensive line *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_BULLRUSH} DIBUTTON_FOOTBALLD_RIP = $1700440A; (* Rip the offensive line *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_RIP} DIBUTTON_FOOTBALLD_AUDIBLE = $1700440B; (* Change defensive play at the line of scrimmage *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_AUDIBLE} DIBUTTON_FOOTBALLD_ZOOM = $1700440C; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_ZOOM} DIBUTTON_FOOTBALLD_SUBSTITUTE = $1700440D; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_SUBSTITUTE} DIBUTTON_FOOTBALLD_LEFT_LINK = $1700C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_LEFT_LINK} DIBUTTON_FOOTBALLD_RIGHT_LINK = $1700C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_RIGHT_LINK} DIBUTTON_FOOTBALLD_FORWARD_LINK = $170144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_FORWARD_LINK} DIBUTTON_FOOTBALLD_BACK_LINK = $170144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_BACK_LINK} DIBUTTON_FOOTBALLD_DEVICE = $170044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_DEVICE} DIBUTTON_FOOTBALLD_PAUSE = $170044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_FOOTBALLD_PAUSE} (*--- Sports - Golf ---*) DIVIRTUAL_SPORTS_GOLF = $18000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_GOLF} DIAXIS_GOLF_LATERAL = $18008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_GOLF_LATERAL} DIAXIS_GOLF_MOVE = $18010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_GOLF_MOVE} DIBUTTON_GOLF_SWING = $18000401; (* swing club *) {$EXTERNALSYM DIBUTTON_GOLF_SWING} DIBUTTON_GOLF_SELECT = $18000402; (* cycle between: club / swing strength / ball arc / ball spin *) {$EXTERNALSYM DIBUTTON_GOLF_SELECT} DIBUTTON_GOLF_UP = $18000403; (* increase selection *) {$EXTERNALSYM DIBUTTON_GOLF_UP} DIBUTTON_GOLF_DOWN = $18000404; (* decrease selection *) {$EXTERNALSYM DIBUTTON_GOLF_DOWN} DIBUTTON_GOLF_TERRAIN = $18000405; (* shows terrain detail *) {$EXTERNALSYM DIBUTTON_GOLF_TERRAIN} DIBUTTON_GOLF_FLYBY = $18000406; (* view the hole via a flyby *) {$EXTERNALSYM DIBUTTON_GOLF_FLYBY} DIBUTTON_GOLF_MENU = $180004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_GOLF_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_GOLF_SCROLL = $18004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_GOLF_SCROLL} DIBUTTON_GOLF_ZOOM = $18004407; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_GOLF_ZOOM} DIBUTTON_GOLF_TIMEOUT = $18004408; (* Call for time out *) {$EXTERNALSYM DIBUTTON_GOLF_TIMEOUT} DIBUTTON_GOLF_SUBSTITUTE = $18004409; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_GOLF_SUBSTITUTE} DIBUTTON_GOLF_LEFT_LINK = $1800C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_GOLF_LEFT_LINK} DIBUTTON_GOLF_RIGHT_LINK = $1800C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_GOLF_RIGHT_LINK} DIBUTTON_GOLF_FORWARD_LINK = $180144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_GOLF_FORWARD_LINK} DIBUTTON_GOLF_BACK_LINK = $180144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_GOLF_BACK_LINK} DIBUTTON_GOLF_DEVICE = $180044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_GOLF_DEVICE} DIBUTTON_GOLF_PAUSE = $180044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_GOLF_PAUSE} (*--- Sports - Hockey - Offense Offense ---*) DIVIRTUAL_SPORTS_HOCKEY_OFFENSE = $19000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_OFFENSE} DIAXIS_HOCKEYO_LATERAL = $19008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_HOCKEYO_LATERAL} DIAXIS_HOCKEYO_MOVE = $19010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_HOCKEYO_MOVE} DIBUTTON_HOCKEYO_SHOOT = $19000401; (* Shoot *) {$EXTERNALSYM DIBUTTON_HOCKEYO_SHOOT} DIBUTTON_HOCKEYO_PASS = $19000402; (* pass the puck *) {$EXTERNALSYM DIBUTTON_HOCKEYO_PASS} DIBUTTON_HOCKEYO_BURST = $19000403; (* invoke speed burst *) {$EXTERNALSYM DIBUTTON_HOCKEYO_BURST} DIBUTTON_HOCKEYO_SPECIAL = $19000404; (* invoke special move *) {$EXTERNALSYM DIBUTTON_HOCKEYO_SPECIAL} DIBUTTON_HOCKEYO_FAKE = $19000405; (* hold down to fake pass or kick *) {$EXTERNALSYM DIBUTTON_HOCKEYO_FAKE} DIBUTTON_HOCKEYO_MENU = $190004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_HOCKEYO_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_HOCKEYO_SCROLL = $19004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_HOCKEYO_SCROLL} DIBUTTON_HOCKEYO_ZOOM = $19004406; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_HOCKEYO_ZOOM} DIBUTTON_HOCKEYO_STRATEGY = $19004407; (* Invoke coaching menu for strategy help *) {$EXTERNALSYM DIBUTTON_HOCKEYO_STRATEGY} DIBUTTON_HOCKEYO_TIMEOUT = $19004408; (* Call for time out *) {$EXTERNALSYM DIBUTTON_HOCKEYO_TIMEOUT} DIBUTTON_HOCKEYO_SUBSTITUTE = $19004409; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_HOCKEYO_SUBSTITUTE} DIBUTTON_HOCKEYO_LEFT_LINK = $1900C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_HOCKEYO_LEFT_LINK} DIBUTTON_HOCKEYO_RIGHT_LINK = $1900C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_HOCKEYO_RIGHT_LINK} DIBUTTON_HOCKEYO_FORWARD_LINK = $190144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_HOCKEYO_FORWARD_LINK} DIBUTTON_HOCKEYO_BACK_LINK = $190144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_HOCKEYO_BACK_LINK} DIBUTTON_HOCKEYO_DEVICE = $190044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_HOCKEYO_DEVICE} DIBUTTON_HOCKEYO_PAUSE = $190044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_HOCKEYO_PAUSE} (*--- Sports - Hockey - Defense Defense ---*) DIVIRTUAL_SPORTS_HOCKEY_DEFENSE = $1A000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_DEFENSE} DIAXIS_HOCKEYD_LATERAL = $1A008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_HOCKEYD_LATERAL} DIAXIS_HOCKEYD_MOVE = $1A010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_HOCKEYD_MOVE} DIBUTTON_HOCKEYD_PLAYER = $1A000401; (* control player closest to the puck *) {$EXTERNALSYM DIBUTTON_HOCKEYD_PLAYER} DIBUTTON_HOCKEYD_STEAL = $1A000402; (* attempt steal *) {$EXTERNALSYM DIBUTTON_HOCKEYD_STEAL} DIBUTTON_HOCKEYD_BURST = $1A000403; (* speed burst or body check *) {$EXTERNALSYM DIBUTTON_HOCKEYD_BURST} DIBUTTON_HOCKEYD_BLOCK = $1A000404; (* block puck *) {$EXTERNALSYM DIBUTTON_HOCKEYD_BLOCK} DIBUTTON_HOCKEYD_FAKE = $1A000405; (* hold down to fake tackle or intercept *) {$EXTERNALSYM DIBUTTON_HOCKEYD_FAKE} DIBUTTON_HOCKEYD_MENU = $1A0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_HOCKEYD_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_HOCKEYD_SCROLL = $1A004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_HOCKEYD_SCROLL} DIBUTTON_HOCKEYD_ZOOM = $1A004406; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_HOCKEYD_ZOOM} DIBUTTON_HOCKEYD_STRATEGY = $1A004407; (* Invoke coaching menu for strategy help *) {$EXTERNALSYM DIBUTTON_HOCKEYD_STRATEGY} DIBUTTON_HOCKEYD_TIMEOUT = $1A004408; (* Call for time out *) {$EXTERNALSYM DIBUTTON_HOCKEYD_TIMEOUT} DIBUTTON_HOCKEYD_SUBSTITUTE = $1A004409; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_HOCKEYD_SUBSTITUTE} DIBUTTON_HOCKEYD_LEFT_LINK = $1A00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_HOCKEYD_LEFT_LINK} DIBUTTON_HOCKEYD_RIGHT_LINK = $1A00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_HOCKEYD_RIGHT_LINK} DIBUTTON_HOCKEYD_FORWARD_LINK = $1A0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_HOCKEYD_FORWARD_LINK} DIBUTTON_HOCKEYD_BACK_LINK = $1A0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_HOCKEYD_BACK_LINK} DIBUTTON_HOCKEYD_DEVICE = $1A0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_HOCKEYD_DEVICE} DIBUTTON_HOCKEYD_PAUSE = $1A0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_HOCKEYD_PAUSE} (*--- Sports - Hockey - Goalie Goal tending ---*) DIVIRTUAL_SPORTS_HOCKEY_GOALIE = $1B000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_HOCKEY_GOALIE} DIAXIS_HOCKEYG_LATERAL = $1B008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_HOCKEYG_LATERAL} DIAXIS_HOCKEYG_MOVE = $1B010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_HOCKEYG_MOVE} DIBUTTON_HOCKEYG_PASS = $1B000401; (* pass puck *) {$EXTERNALSYM DIBUTTON_HOCKEYG_PASS} DIBUTTON_HOCKEYG_POKE = $1B000402; (* poke / check / hack *) {$EXTERNALSYM DIBUTTON_HOCKEYG_POKE} DIBUTTON_HOCKEYG_STEAL = $1B000403; (* attempt steal *) {$EXTERNALSYM DIBUTTON_HOCKEYG_STEAL} DIBUTTON_HOCKEYG_BLOCK = $1B000404; (* block puck *) {$EXTERNALSYM DIBUTTON_HOCKEYG_BLOCK} DIBUTTON_HOCKEYG_MENU = $1B0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_HOCKEYG_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_HOCKEYG_SCROLL = $1B004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_HOCKEYG_SCROLL} DIBUTTON_HOCKEYG_ZOOM = $1B004405; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_HOCKEYG_ZOOM} DIBUTTON_HOCKEYG_STRATEGY = $1B004406; (* Invoke coaching menu for strategy help *) {$EXTERNALSYM DIBUTTON_HOCKEYG_STRATEGY} DIBUTTON_HOCKEYG_TIMEOUT = $1B004407; (* Call for time out *) {$EXTERNALSYM DIBUTTON_HOCKEYG_TIMEOUT} DIBUTTON_HOCKEYG_SUBSTITUTE = $1B004408; (* substitute one player for another *) {$EXTERNALSYM DIBUTTON_HOCKEYG_SUBSTITUTE} DIBUTTON_HOCKEYG_LEFT_LINK = $1B00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_HOCKEYG_LEFT_LINK} DIBUTTON_HOCKEYG_RIGHT_LINK = $1B00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_HOCKEYG_RIGHT_LINK} DIBUTTON_HOCKEYG_FORWARD_LINK = $1B0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_HOCKEYG_FORWARD_LINK} DIBUTTON_HOCKEYG_BACK_LINK = $1B0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_HOCKEYG_BACK_LINK} DIBUTTON_HOCKEYG_DEVICE = $1B0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_HOCKEYG_DEVICE} DIBUTTON_HOCKEYG_PAUSE = $1B0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_HOCKEYG_PAUSE} (*--- Sports - Mountain Biking ---*) DIVIRTUAL_SPORTS_BIKING_MOUNTAIN = $1C000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_BIKING_MOUNTAIN} DIAXIS_BIKINGM_TURN = $1C008201; (* left / right *) {$EXTERNALSYM DIAXIS_BIKINGM_TURN} DIAXIS_BIKINGM_PEDAL = $1C010202; (* Pedal faster / slower / brake *) {$EXTERNALSYM DIAXIS_BIKINGM_PEDAL} DIBUTTON_BIKINGM_JUMP = $1C000401; (* jump over obstacle *) {$EXTERNALSYM DIBUTTON_BIKINGM_JUMP} DIBUTTON_BIKINGM_CAMERA = $1C000402; (* switch camera view *) {$EXTERNALSYM DIBUTTON_BIKINGM_CAMERA} DIBUTTON_BIKINGM_SPECIAL1 = $1C000403; (* perform first special move *) {$EXTERNALSYM DIBUTTON_BIKINGM_SPECIAL1} DIBUTTON_BIKINGM_SELECT = $1C000404; (* Select *) {$EXTERNALSYM DIBUTTON_BIKINGM_SELECT} DIBUTTON_BIKINGM_SPECIAL2 = $1C000405; (* perform second special move *) {$EXTERNALSYM DIBUTTON_BIKINGM_SPECIAL2} DIBUTTON_BIKINGM_MENU = $1C0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BIKINGM_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_BIKINGM_SCROLL = $1C004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_BIKINGM_SCROLL} DIBUTTON_BIKINGM_ZOOM = $1C004406; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_BIKINGM_ZOOM} DIAXIS_BIKINGM_BRAKE = $1C044203; (* Brake axis *) {$EXTERNALSYM DIAXIS_BIKINGM_BRAKE} DIBUTTON_BIKINGM_LEFT_LINK = $1C00C4E4; (* Fallback turn left button *) {$EXTERNALSYM DIBUTTON_BIKINGM_LEFT_LINK} DIBUTTON_BIKINGM_RIGHT_LINK = $1C00C4EC; (* Fallback turn right button *) {$EXTERNALSYM DIBUTTON_BIKINGM_RIGHT_LINK} DIBUTTON_BIKINGM_FASTER_LINK = $1C0144E0; (* Fallback pedal faster button *) {$EXTERNALSYM DIBUTTON_BIKINGM_FASTER_LINK} DIBUTTON_BIKINGM_SLOWER_LINK = $1C0144E8; (* Fallback pedal slower button *) {$EXTERNALSYM DIBUTTON_BIKINGM_SLOWER_LINK} DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK = $1C0444E8; (* Fallback brake button *) {$EXTERNALSYM DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK} DIBUTTON_BIKINGM_DEVICE = $1C0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BIKINGM_DEVICE} DIBUTTON_BIKINGM_PAUSE = $1C0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BIKINGM_PAUSE} (*--- Sports: Skiing / Snowboarding / Skateboarding ---*) DIVIRTUAL_SPORTS_SKIING = $1D000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_SKIING} DIAXIS_SKIING_TURN = $1D008201; (* left / right *) {$EXTERNALSYM DIAXIS_SKIING_TURN} DIAXIS_SKIING_SPEED = $1D010202; (* faster / slower *) {$EXTERNALSYM DIAXIS_SKIING_SPEED} DIBUTTON_SKIING_JUMP = $1D000401; (* Jump *) {$EXTERNALSYM DIBUTTON_SKIING_JUMP} DIBUTTON_SKIING_CROUCH = $1D000402; (* crouch down *) {$EXTERNALSYM DIBUTTON_SKIING_CROUCH} DIBUTTON_SKIING_CAMERA = $1D000403; (* switch camera view *) {$EXTERNALSYM DIBUTTON_SKIING_CAMERA} DIBUTTON_SKIING_SPECIAL1 = $1D000404; (* perform first special move *) {$EXTERNALSYM DIBUTTON_SKIING_SPECIAL1} DIBUTTON_SKIING_SELECT = $1D000405; (* Select *) {$EXTERNALSYM DIBUTTON_SKIING_SELECT} DIBUTTON_SKIING_SPECIAL2 = $1D000406; (* perform second special move *) {$EXTERNALSYM DIBUTTON_SKIING_SPECIAL2} DIBUTTON_SKIING_MENU = $1D0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_SKIING_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_SKIING_GLANCE = $1D004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_SKIING_GLANCE} DIBUTTON_SKIING_ZOOM = $1D004407; (* Zoom view in / out *) {$EXTERNALSYM DIBUTTON_SKIING_ZOOM} DIBUTTON_SKIING_LEFT_LINK = $1D00C4E4; (* Fallback turn left button *) {$EXTERNALSYM DIBUTTON_SKIING_LEFT_LINK} DIBUTTON_SKIING_RIGHT_LINK = $1D00C4EC; (* Fallback turn right button *) {$EXTERNALSYM DIBUTTON_SKIING_RIGHT_LINK} DIBUTTON_SKIING_FASTER_LINK = $1D0144E0; (* Fallback increase speed button *) {$EXTERNALSYM DIBUTTON_SKIING_FASTER_LINK} DIBUTTON_SKIING_SLOWER_LINK = $1D0144E8; (* Fallback decrease speed button *) {$EXTERNALSYM DIBUTTON_SKIING_SLOWER_LINK} DIBUTTON_SKIING_DEVICE = $1D0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_SKIING_DEVICE} DIBUTTON_SKIING_PAUSE = $1D0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_SKIING_PAUSE} (*--- Sports - Soccer - Offense Offense ---*) DIVIRTUAL_SPORTS_SOCCER_OFFENSE = $1E000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_SOCCER_OFFENSE} DIAXIS_SOCCERO_LATERAL = $1E008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_SOCCERO_LATERAL} DIAXIS_SOCCERO_MOVE = $1E010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_SOCCERO_MOVE} DIAXIS_SOCCERO_BEND = $1E018203; (* Bend to soccer shot/pass *) {$EXTERNALSYM DIAXIS_SOCCERO_BEND} DIBUTTON_SOCCERO_SHOOT = $1E000401; (* Shoot the ball *) {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOT} DIBUTTON_SOCCERO_PASS = $1E000402; (* Pass *) {$EXTERNALSYM DIBUTTON_SOCCERO_PASS} DIBUTTON_SOCCERO_FAKE = $1E000403; (* Fake *) {$EXTERNALSYM DIBUTTON_SOCCERO_FAKE} DIBUTTON_SOCCERO_PLAYER = $1E000404; (* Select next player *) {$EXTERNALSYM DIBUTTON_SOCCERO_PLAYER} DIBUTTON_SOCCERO_SPECIAL1 = $1E000405; (* Apply special move *) {$EXTERNALSYM DIBUTTON_SOCCERO_SPECIAL1} DIBUTTON_SOCCERO_SELECT = $1E000406; (* Select special move *) {$EXTERNALSYM DIBUTTON_SOCCERO_SELECT} DIBUTTON_SOCCERO_MENU = $1E0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_SOCCERO_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_SOCCERO_GLANCE = $1E004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_SOCCERO_GLANCE} DIBUTTON_SOCCERO_SUBSTITUTE = $1E004407; (* Substitute one player for another *) {$EXTERNALSYM DIBUTTON_SOCCERO_SUBSTITUTE} DIBUTTON_SOCCERO_SHOOTLOW = $1E004408; (* Shoot the ball low *) {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOTLOW} DIBUTTON_SOCCERO_SHOOTHIGH = $1E004409; (* Shoot the ball high *) {$EXTERNALSYM DIBUTTON_SOCCERO_SHOOTHIGH} DIBUTTON_SOCCERO_PASSTHRU = $1E00440A; (* Make a thru pass *) {$EXTERNALSYM DIBUTTON_SOCCERO_PASSTHRU} DIBUTTON_SOCCERO_SPRINT = $1E00440B; (* Sprint / turbo boost *) {$EXTERNALSYM DIBUTTON_SOCCERO_SPRINT} DIBUTTON_SOCCERO_CONTROL = $1E00440C; (* Obtain control of the ball *) {$EXTERNALSYM DIBUTTON_SOCCERO_CONTROL} DIBUTTON_SOCCERO_HEAD = $1E00440D; (* Attempt to head the ball *) {$EXTERNALSYM DIBUTTON_SOCCERO_HEAD} DIBUTTON_SOCCERO_LEFT_LINK = $1E00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_SOCCERO_LEFT_LINK} DIBUTTON_SOCCERO_RIGHT_LINK = $1E00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_SOCCERO_RIGHT_LINK} DIBUTTON_SOCCERO_FORWARD_LINK = $1E0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_SOCCERO_FORWARD_LINK} DIBUTTON_SOCCERO_BACK_LINK = $1E0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_SOCCERO_BACK_LINK} DIBUTTON_SOCCERO_DEVICE = $1E0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_SOCCERO_DEVICE} DIBUTTON_SOCCERO_PAUSE = $1E0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_SOCCERO_PAUSE} (*--- Sports - Soccer - Defense Defense ---*) DIVIRTUAL_SPORTS_SOCCER_DEFENSE = $1F000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_SOCCER_DEFENSE} DIAXIS_SOCCERD_LATERAL = $1F008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_SOCCERD_LATERAL} DIAXIS_SOCCERD_MOVE = $1F010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_SOCCERD_MOVE} DIBUTTON_SOCCERD_BLOCK = $1F000401; (* Attempt to block shot *) {$EXTERNALSYM DIBUTTON_SOCCERD_BLOCK} DIBUTTON_SOCCERD_STEAL = $1F000402; (* Attempt to steal ball *) {$EXTERNALSYM DIBUTTON_SOCCERD_STEAL} DIBUTTON_SOCCERD_FAKE = $1F000403; (* Fake a block or a steal *) {$EXTERNALSYM DIBUTTON_SOCCERD_FAKE} DIBUTTON_SOCCERD_PLAYER = $1F000404; (* Select next player *) {$EXTERNALSYM DIBUTTON_SOCCERD_PLAYER} DIBUTTON_SOCCERD_SPECIAL = $1F000405; (* Apply special move *) {$EXTERNALSYM DIBUTTON_SOCCERD_SPECIAL} DIBUTTON_SOCCERD_SELECT = $1F000406; (* Select special move *) {$EXTERNALSYM DIBUTTON_SOCCERD_SELECT} DIBUTTON_SOCCERD_SLIDE = $1F000407; (* Attempt a slide tackle *) {$EXTERNALSYM DIBUTTON_SOCCERD_SLIDE} DIBUTTON_SOCCERD_MENU = $1F0004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_SOCCERD_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_SOCCERD_GLANCE = $1F004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_SOCCERD_GLANCE} DIBUTTON_SOCCERD_FOUL = $1F004408; (* Initiate a foul / hard-foul *) {$EXTERNALSYM DIBUTTON_SOCCERD_FOUL} DIBUTTON_SOCCERD_HEAD = $1F004409; (* Attempt a Header *) {$EXTERNALSYM DIBUTTON_SOCCERD_HEAD} DIBUTTON_SOCCERD_CLEAR = $1F00440A; (* Attempt to clear the ball down the field *) {$EXTERNALSYM DIBUTTON_SOCCERD_CLEAR} DIBUTTON_SOCCERD_GOALIECHARGE = $1F00440B; (* Make the goalie charge out of the box *) {$EXTERNALSYM DIBUTTON_SOCCERD_GOALIECHARGE} DIBUTTON_SOCCERD_SUBSTITUTE = $1F00440C; (* Substitute one player for another *) {$EXTERNALSYM DIBUTTON_SOCCERD_SUBSTITUTE} DIBUTTON_SOCCERD_LEFT_LINK = $1F00C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_SOCCERD_LEFT_LINK} DIBUTTON_SOCCERD_RIGHT_LINK = $1F00C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_SOCCERD_RIGHT_LINK} DIBUTTON_SOCCERD_FORWARD_LINK = $1F0144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_SOCCERD_FORWARD_LINK} DIBUTTON_SOCCERD_BACK_LINK = $1F0144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_SOCCERD_BACK_LINK} DIBUTTON_SOCCERD_DEVICE = $1F0044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_SOCCERD_DEVICE} DIBUTTON_SOCCERD_PAUSE = $1F0044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_SOCCERD_PAUSE} (*--- Sports - Racquet Tennis - Table-Tennis - Squash ---*) DIVIRTUAL_SPORTS_RACQUET = $20000000; {$EXTERNALSYM DIVIRTUAL_SPORTS_RACQUET} DIAXIS_RACQUET_LATERAL = $20008201; (* Move / Aim: left / right *) {$EXTERNALSYM DIAXIS_RACQUET_LATERAL} DIAXIS_RACQUET_MOVE = $20010202; (* Move / Aim: up / down *) {$EXTERNALSYM DIAXIS_RACQUET_MOVE} DIBUTTON_RACQUET_SWING = $20000401; (* Swing racquet *) {$EXTERNALSYM DIBUTTON_RACQUET_SWING} DIBUTTON_RACQUET_BACKSWING = $20000402; (* Swing backhand *) {$EXTERNALSYM DIBUTTON_RACQUET_BACKSWING} DIBUTTON_RACQUET_SMASH = $20000403; (* Smash shot *) {$EXTERNALSYM DIBUTTON_RACQUET_SMASH} DIBUTTON_RACQUET_SPECIAL = $20000404; (* Special shot *) {$EXTERNALSYM DIBUTTON_RACQUET_SPECIAL} DIBUTTON_RACQUET_SELECT = $20000405; (* Select special shot *) {$EXTERNALSYM DIBUTTON_RACQUET_SELECT} DIBUTTON_RACQUET_MENU = $200004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_RACQUET_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_RACQUET_GLANCE = $20004601; (* scroll view *) {$EXTERNALSYM DIHATSWITCH_RACQUET_GLANCE} DIBUTTON_RACQUET_TIMEOUT = $20004406; (* Call for time out *) {$EXTERNALSYM DIBUTTON_RACQUET_TIMEOUT} DIBUTTON_RACQUET_SUBSTITUTE = $20004407; (* Substitute one player for another *) {$EXTERNALSYM DIBUTTON_RACQUET_SUBSTITUTE} DIBUTTON_RACQUET_LEFT_LINK = $2000C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_RACQUET_LEFT_LINK} DIBUTTON_RACQUET_RIGHT_LINK = $2000C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_RACQUET_RIGHT_LINK} DIBUTTON_RACQUET_FORWARD_LINK = $200144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_RACQUET_FORWARD_LINK} DIBUTTON_RACQUET_BACK_LINK = $200144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_RACQUET_BACK_LINK} DIBUTTON_RACQUET_DEVICE = $200044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_RACQUET_DEVICE} DIBUTTON_RACQUET_PAUSE = $200044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_RACQUET_PAUSE} (*--- Arcade- 2D Side to Side movement ---*) DIVIRTUAL_ARCADE_SIDE2SIDE = $21000000; {$EXTERNALSYM DIVIRTUAL_ARCADE_SIDE2SIDE} DIAXIS_ARCADES_LATERAL = $21008201; (* left / right *) {$EXTERNALSYM DIAXIS_ARCADES_LATERAL} DIAXIS_ARCADES_MOVE = $21010202; (* up / down *) {$EXTERNALSYM DIAXIS_ARCADES_MOVE} DIBUTTON_ARCADES_THROW = $21000401; (* throw object *) {$EXTERNALSYM DIBUTTON_ARCADES_THROW} DIBUTTON_ARCADES_CARRY = $21000402; (* carry object *) {$EXTERNALSYM DIBUTTON_ARCADES_CARRY} DIBUTTON_ARCADES_ATTACK = $21000403; (* attack *) {$EXTERNALSYM DIBUTTON_ARCADES_ATTACK} DIBUTTON_ARCADES_SPECIAL = $21000404; (* apply special move *) {$EXTERNALSYM DIBUTTON_ARCADES_SPECIAL} DIBUTTON_ARCADES_SELECT = $21000405; (* select special move *) {$EXTERNALSYM DIBUTTON_ARCADES_SELECT} DIBUTTON_ARCADES_MENU = $210004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_ARCADES_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_ARCADES_VIEW = $21004601; (* scroll view left / right / up / down *) {$EXTERNALSYM DIHATSWITCH_ARCADES_VIEW} DIBUTTON_ARCADES_LEFT_LINK = $2100C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_ARCADES_LEFT_LINK} DIBUTTON_ARCADES_RIGHT_LINK = $2100C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_ARCADES_RIGHT_LINK} DIBUTTON_ARCADES_FORWARD_LINK = $210144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_ARCADES_FORWARD_LINK} DIBUTTON_ARCADES_BACK_LINK = $210144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_ARCADES_BACK_LINK} DIBUTTON_ARCADES_VIEW_UP_LINK = $2107C4E0; (* Fallback scroll view up button *) {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_UP_LINK} DIBUTTON_ARCADES_VIEW_DOWN_LINK = $2107C4E8; (* Fallback scroll view down button *) {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_DOWN_LINK} DIBUTTON_ARCADES_VIEW_LEFT_LINK = $2107C4E4; (* Fallback scroll view left button *) {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_LEFT_LINK} DIBUTTON_ARCADES_VIEW_RIGHT_LINK = $2107C4EC; (* Fallback scroll view right button *) {$EXTERNALSYM DIBUTTON_ARCADES_VIEW_RIGHT_LINK} DIBUTTON_ARCADES_DEVICE = $210044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_ARCADES_DEVICE} DIBUTTON_ARCADES_PAUSE = $210044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_ARCADES_PAUSE} (*--- Arcade - Platform Game Character moves around on screen ---*) DIVIRTUAL_ARCADE_PLATFORM = $22000000; {$EXTERNALSYM DIVIRTUAL_ARCADE_PLATFORM} DIAXIS_ARCADEP_LATERAL = $22008201; (* Left / right *) {$EXTERNALSYM DIAXIS_ARCADEP_LATERAL} DIAXIS_ARCADEP_MOVE = $22010202; (* Up / down *) {$EXTERNALSYM DIAXIS_ARCADEP_MOVE} DIBUTTON_ARCADEP_JUMP = $22000401; (* Jump *) {$EXTERNALSYM DIBUTTON_ARCADEP_JUMP} DIBUTTON_ARCADEP_FIRE = $22000402; (* Fire *) {$EXTERNALSYM DIBUTTON_ARCADEP_FIRE} DIBUTTON_ARCADEP_CROUCH = $22000403; (* Crouch *) {$EXTERNALSYM DIBUTTON_ARCADEP_CROUCH} DIBUTTON_ARCADEP_SPECIAL = $22000404; (* Apply special move *) {$EXTERNALSYM DIBUTTON_ARCADEP_SPECIAL} DIBUTTON_ARCADEP_SELECT = $22000405; (* Select special move *) {$EXTERNALSYM DIBUTTON_ARCADEP_SELECT} DIBUTTON_ARCADEP_MENU = $220004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_ARCADEP_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_ARCADEP_VIEW = $22004601; (* Scroll view *) {$EXTERNALSYM DIHATSWITCH_ARCADEP_VIEW} DIBUTTON_ARCADEP_FIRESECONDARY = $22004406; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_ARCADEP_FIRESECONDARY} DIBUTTON_ARCADEP_LEFT_LINK = $2200C4E4; (* Fallback sidestep left button *) {$EXTERNALSYM DIBUTTON_ARCADEP_LEFT_LINK} DIBUTTON_ARCADEP_RIGHT_LINK = $2200C4EC; (* Fallback sidestep right button *) {$EXTERNALSYM DIBUTTON_ARCADEP_RIGHT_LINK} DIBUTTON_ARCADEP_FORWARD_LINK = $220144E0; (* Fallback move forward button *) {$EXTERNALSYM DIBUTTON_ARCADEP_FORWARD_LINK} DIBUTTON_ARCADEP_BACK_LINK = $220144E8; (* Fallback move back button *) {$EXTERNALSYM DIBUTTON_ARCADEP_BACK_LINK} DIBUTTON_ARCADEP_VIEW_UP_LINK = $2207C4E0; (* Fallback scroll view up button *) {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_UP_LINK} DIBUTTON_ARCADEP_VIEW_DOWN_LINK = $2207C4E8; (* Fallback scroll view down button *) {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_DOWN_LINK} DIBUTTON_ARCADEP_VIEW_LEFT_LINK = $2207C4E4; (* Fallback scroll view left button *) {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_LEFT_LINK} DIBUTTON_ARCADEP_VIEW_RIGHT_LINK = $2207C4EC; (* Fallback scroll view right button *) {$EXTERNALSYM DIBUTTON_ARCADEP_VIEW_RIGHT_LINK} DIBUTTON_ARCADEP_DEVICE = $220044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_ARCADEP_DEVICE} DIBUTTON_ARCADEP_PAUSE = $220044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_ARCADEP_PAUSE} (*--- CAD - 2D Object Control Controls to select and move objects in 2D ---*) DIVIRTUAL_CAD_2DCONTROL = $23000000; {$EXTERNALSYM DIVIRTUAL_CAD_2DCONTROL} DIAXIS_2DCONTROL_LATERAL = $23008201; (* Move view left / right *) {$EXTERNALSYM DIAXIS_2DCONTROL_LATERAL} DIAXIS_2DCONTROL_MOVE = $23010202; (* Move view up / down *) {$EXTERNALSYM DIAXIS_2DCONTROL_MOVE} DIAXIS_2DCONTROL_INOUT = $23018203; (* Zoom - in / out *) {$EXTERNALSYM DIAXIS_2DCONTROL_INOUT} DIBUTTON_2DCONTROL_SELECT = $23000401; (* Select Object *) {$EXTERNALSYM DIBUTTON_2DCONTROL_SELECT} DIBUTTON_2DCONTROL_SPECIAL1 = $23000402; (* Do first special operation *) {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL1} DIBUTTON_2DCONTROL_SPECIAL = $23000403; (* Select special operation *) {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL} DIBUTTON_2DCONTROL_SPECIAL2 = $23000404; (* Do second special operation *) {$EXTERNALSYM DIBUTTON_2DCONTROL_SPECIAL2} DIBUTTON_2DCONTROL_MENU = $230004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_2DCONTROL_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_2DCONTROL_HATSWITCH = $23004601; (* Hat switch *) {$EXTERNALSYM DIHATSWITCH_2DCONTROL_HATSWITCH} DIAXIS_2DCONTROL_ROTATEZ = $23024204; (* Rotate view clockwise / counterclockwise *) {$EXTERNALSYM DIAXIS_2DCONTROL_ROTATEZ} DIBUTTON_2DCONTROL_DISPLAY = $23004405; (* Shows next on-screen display options *) {$EXTERNALSYM DIBUTTON_2DCONTROL_DISPLAY} DIBUTTON_2DCONTROL_DEVICE = $230044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_2DCONTROL_DEVICE} DIBUTTON_2DCONTROL_PAUSE = $230044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_2DCONTROL_PAUSE} (*--- CAD - 3D object control Controls to select and move objects within a 3D environment ---*) DIVIRTUAL_CAD_3DCONTROL = $24000000; {$EXTERNALSYM DIVIRTUAL_CAD_3DCONTROL} DIAXIS_3DCONTROL_LATERAL = $24008201; (* Move view left / right *) {$EXTERNALSYM DIAXIS_3DCONTROL_LATERAL} DIAXIS_3DCONTROL_MOVE = $24010202; (* Move view up / down *) {$EXTERNALSYM DIAXIS_3DCONTROL_MOVE} DIAXIS_3DCONTROL_INOUT = $24018203; (* Zoom - in / out *) {$EXTERNALSYM DIAXIS_3DCONTROL_INOUT} DIBUTTON_3DCONTROL_SELECT = $24000401; (* Select Object *) {$EXTERNALSYM DIBUTTON_3DCONTROL_SELECT} DIBUTTON_3DCONTROL_SPECIAL1 = $24000402; (* Do first special operation *) {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL1} DIBUTTON_3DCONTROL_SPECIAL = $24000403; (* Select special operation *) {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL} DIBUTTON_3DCONTROL_SPECIAL2 = $24000404; (* Do second special operation *) {$EXTERNALSYM DIBUTTON_3DCONTROL_SPECIAL2} DIBUTTON_3DCONTROL_MENU = $240004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_3DCONTROL_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_3DCONTROL_HATSWITCH = $24004601; (* Hat switch *) {$EXTERNALSYM DIHATSWITCH_3DCONTROL_HATSWITCH} DIAXIS_3DCONTROL_ROTATEX = $24034204; (* Rotate view forward or up / backward or down *) {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEX} DIAXIS_3DCONTROL_ROTATEY = $2402C205; (* Rotate view clockwise / counterclockwise *) {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEY} DIAXIS_3DCONTROL_ROTATEZ = $24024206; (* Rotate view left / right *) {$EXTERNALSYM DIAXIS_3DCONTROL_ROTATEZ} DIBUTTON_3DCONTROL_DISPLAY = $24004405; (* Show next on-screen display options *) {$EXTERNALSYM DIBUTTON_3DCONTROL_DISPLAY} DIBUTTON_3DCONTROL_DEVICE = $240044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_3DCONTROL_DEVICE} DIBUTTON_3DCONTROL_PAUSE = $240044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_3DCONTROL_PAUSE} (*--- CAD - 3D Navigation - Fly through Controls for 3D modeling ---*) DIVIRTUAL_CAD_FLYBY = $25000000; {$EXTERNALSYM DIVIRTUAL_CAD_FLYBY} DIAXIS_CADF_LATERAL = $25008201; (* move view left / right *) {$EXTERNALSYM DIAXIS_CADF_LATERAL} DIAXIS_CADF_MOVE = $25010202; (* move view up / down *) {$EXTERNALSYM DIAXIS_CADF_MOVE} DIAXIS_CADF_INOUT = $25018203; (* in / out *) {$EXTERNALSYM DIAXIS_CADF_INOUT} DIBUTTON_CADF_SELECT = $25000401; (* Select Object *) {$EXTERNALSYM DIBUTTON_CADF_SELECT} DIBUTTON_CADF_SPECIAL1 = $25000402; (* do first special operation *) {$EXTERNALSYM DIBUTTON_CADF_SPECIAL1} DIBUTTON_CADF_SPECIAL = $25000403; (* Select special operation *) {$EXTERNALSYM DIBUTTON_CADF_SPECIAL} DIBUTTON_CADF_SPECIAL2 = $25000404; (* do second special operation *) {$EXTERNALSYM DIBUTTON_CADF_SPECIAL2} DIBUTTON_CADF_MENU = $250004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_CADF_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_CADF_HATSWITCH = $25004601; (* Hat switch *) {$EXTERNALSYM DIHATSWITCH_CADF_HATSWITCH} DIAXIS_CADF_ROTATEX = $25034204; (* Rotate view forward or up / backward or down *) {$EXTERNALSYM DIAXIS_CADF_ROTATEX} DIAXIS_CADF_ROTATEY = $2502C205; (* Rotate view clockwise / counterclockwise *) {$EXTERNALSYM DIAXIS_CADF_ROTATEY} DIAXIS_CADF_ROTATEZ = $25024206; (* Rotate view left / right *) {$EXTERNALSYM DIAXIS_CADF_ROTATEZ} DIBUTTON_CADF_DISPLAY = $25004405; (* shows next on-screen display options *) {$EXTERNALSYM DIBUTTON_CADF_DISPLAY} DIBUTTON_CADF_DEVICE = $250044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_CADF_DEVICE} DIBUTTON_CADF_PAUSE = $250044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_CADF_PAUSE} (*--- CAD - 3D Model Control Controls for 3D modeling ---*) DIVIRTUAL_CAD_MODEL = $26000000; {$EXTERNALSYM DIVIRTUAL_CAD_MODEL} DIAXIS_CADM_LATERAL = $26008201; (* move view left / right *) {$EXTERNALSYM DIAXIS_CADM_LATERAL} DIAXIS_CADM_MOVE = $26010202; (* move view up / down *) {$EXTERNALSYM DIAXIS_CADM_MOVE} DIAXIS_CADM_INOUT = $26018203; (* in / out *) {$EXTERNALSYM DIAXIS_CADM_INOUT} DIBUTTON_CADM_SELECT = $26000401; (* Select Object *) {$EXTERNALSYM DIBUTTON_CADM_SELECT} DIBUTTON_CADM_SPECIAL1 = $26000402; (* do first special operation *) {$EXTERNALSYM DIBUTTON_CADM_SPECIAL1} DIBUTTON_CADM_SPECIAL = $26000403; (* Select special operation *) {$EXTERNALSYM DIBUTTON_CADM_SPECIAL} DIBUTTON_CADM_SPECIAL2 = $26000404; (* do second special operation *) {$EXTERNALSYM DIBUTTON_CADM_SPECIAL2} DIBUTTON_CADM_MENU = $260004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_CADM_MENU} (*--- Priority 2 controls ---*) DIHATSWITCH_CADM_HATSWITCH = $26004601; (* Hat switch *) {$EXTERNALSYM DIHATSWITCH_CADM_HATSWITCH} DIAXIS_CADM_ROTATEX = $26034204; (* Rotate view forward or up / backward or down *) {$EXTERNALSYM DIAXIS_CADM_ROTATEX} DIAXIS_CADM_ROTATEY = $2602C205; (* Rotate view clockwise / counterclockwise *) {$EXTERNALSYM DIAXIS_CADM_ROTATEY} DIAXIS_CADM_ROTATEZ = $26024206; (* Rotate view left / right *) {$EXTERNALSYM DIAXIS_CADM_ROTATEZ} DIBUTTON_CADM_DISPLAY = $26004405; (* shows next on-screen display options *) {$EXTERNALSYM DIBUTTON_CADM_DISPLAY} DIBUTTON_CADM_DEVICE = $260044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_CADM_DEVICE} DIBUTTON_CADM_PAUSE = $260044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_CADM_PAUSE} (*--- Control - Media Equipment Remote ---*) DIVIRTUAL_REMOTE_CONTROL = $27000000; {$EXTERNALSYM DIVIRTUAL_REMOTE_CONTROL} DIAXIS_REMOTE_SLIDER = $27050201; (* Slider for adjustment: volume / color / bass / etc *) {$EXTERNALSYM DIAXIS_REMOTE_SLIDER} DIBUTTON_REMOTE_MUTE = $27000401; (* Set volume on current device to zero *) {$EXTERNALSYM DIBUTTON_REMOTE_MUTE} DIBUTTON_REMOTE_SELECT = $27000402; (* Next/previous: channel/ track / chapter / picture / station *) {$EXTERNALSYM DIBUTTON_REMOTE_SELECT} DIBUTTON_REMOTE_PLAY = $27002403; (* Start or pause entertainment on current device *) {$EXTERNALSYM DIBUTTON_REMOTE_PLAY} DIBUTTON_REMOTE_CUE = $27002404; (* Move through current media *) {$EXTERNALSYM DIBUTTON_REMOTE_CUE} DIBUTTON_REMOTE_REVIEW = $27002405; (* Move through current media *) {$EXTERNALSYM DIBUTTON_REMOTE_REVIEW} DIBUTTON_REMOTE_CHANGE = $27002406; (* Select next device *) {$EXTERNALSYM DIBUTTON_REMOTE_CHANGE} DIBUTTON_REMOTE_RECORD = $27002407; (* Start recording the current media *) {$EXTERNALSYM DIBUTTON_REMOTE_RECORD} DIBUTTON_REMOTE_MENU = $270004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_REMOTE_MENU} (*--- Priority 2 controls ---*) DIAXIS_REMOTE_SLIDER2 = $27054202; (* Slider for adjustment: volume *) {$EXTERNALSYM DIAXIS_REMOTE_SLIDER2} DIBUTTON_REMOTE_TV = $27005C08; (* Select TV *) {$EXTERNALSYM DIBUTTON_REMOTE_TV} DIBUTTON_REMOTE_CABLE = $27005C09; (* Select cable box *) {$EXTERNALSYM DIBUTTON_REMOTE_CABLE} DIBUTTON_REMOTE_CD = $27005C0A; (* Select CD player *) {$EXTERNALSYM DIBUTTON_REMOTE_CD} DIBUTTON_REMOTE_VCR = $27005C0B; (* Select VCR *) {$EXTERNALSYM DIBUTTON_REMOTE_VCR} DIBUTTON_REMOTE_TUNER = $27005C0C; (* Select tuner *) {$EXTERNALSYM DIBUTTON_REMOTE_TUNER} DIBUTTON_REMOTE_DVD = $27005C0D; (* Select DVD player *) {$EXTERNALSYM DIBUTTON_REMOTE_DVD} DIBUTTON_REMOTE_ADJUST = $27005C0E; (* Enter device adjustment menu *) {$EXTERNALSYM DIBUTTON_REMOTE_ADJUST} DIBUTTON_REMOTE_DIGIT0 = $2700540F; (* Digit 0 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT0} DIBUTTON_REMOTE_DIGIT1 = $27005410; (* Digit 1 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT1} DIBUTTON_REMOTE_DIGIT2 = $27005411; (* Digit 2 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT2} DIBUTTON_REMOTE_DIGIT3 = $27005412; (* Digit 3 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT3} DIBUTTON_REMOTE_DIGIT4 = $27005413; (* Digit 4 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT4} DIBUTTON_REMOTE_DIGIT5 = $27005414; (* Digit 5 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT5} DIBUTTON_REMOTE_DIGIT6 = $27005415; (* Digit 6 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT6} DIBUTTON_REMOTE_DIGIT7 = $27005416; (* Digit 7 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT7} DIBUTTON_REMOTE_DIGIT8 = $27005417; (* Digit 8 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT8} DIBUTTON_REMOTE_DIGIT9 = $27005418; (* Digit 9 *) {$EXTERNALSYM DIBUTTON_REMOTE_DIGIT9} DIBUTTON_REMOTE_DEVICE = $270044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_REMOTE_DEVICE} DIBUTTON_REMOTE_PAUSE = $270044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_REMOTE_PAUSE} (*--- Control- Web Help or Browser ---*) DIVIRTUAL_BROWSER_CONTROL = $28000000; {$EXTERNALSYM DIVIRTUAL_BROWSER_CONTROL} DIAXIS_BROWSER_LATERAL = $28008201; (* Move on screen pointer *) {$EXTERNALSYM DIAXIS_BROWSER_LATERAL} DIAXIS_BROWSER_MOVE = $28010202; (* Move on screen pointer *) {$EXTERNALSYM DIAXIS_BROWSER_MOVE} DIBUTTON_BROWSER_SELECT = $28000401; (* Select current item *) {$EXTERNALSYM DIBUTTON_BROWSER_SELECT} DIAXIS_BROWSER_VIEW = $28018203; (* Move view up/down *) {$EXTERNALSYM DIAXIS_BROWSER_VIEW} DIBUTTON_BROWSER_REFRESH = $28000402; (* Refresh *) {$EXTERNALSYM DIBUTTON_BROWSER_REFRESH} DIBUTTON_BROWSER_MENU = $280004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_BROWSER_MENU} (*--- Priority 2 controls ---*) DIBUTTON_BROWSER_SEARCH = $28004403; (* Use search tool *) {$EXTERNALSYM DIBUTTON_BROWSER_SEARCH} DIBUTTON_BROWSER_STOP = $28004404; (* Cease current update *) {$EXTERNALSYM DIBUTTON_BROWSER_STOP} DIBUTTON_BROWSER_HOME = $28004405; (* Go directly to "home" location *) {$EXTERNALSYM DIBUTTON_BROWSER_HOME} DIBUTTON_BROWSER_FAVORITES = $28004406; (* Mark current site as favorite *) {$EXTERNALSYM DIBUTTON_BROWSER_FAVORITES} DIBUTTON_BROWSER_NEXT = $28004407; (* Select Next page *) {$EXTERNALSYM DIBUTTON_BROWSER_NEXT} DIBUTTON_BROWSER_PREVIOUS = $28004408; (* Select Previous page *) {$EXTERNALSYM DIBUTTON_BROWSER_PREVIOUS} DIBUTTON_BROWSER_HISTORY = $28004409; (* Show/Hide History *) {$EXTERNALSYM DIBUTTON_BROWSER_HISTORY} DIBUTTON_BROWSER_PRINT = $2800440A; (* Print current page *) {$EXTERNALSYM DIBUTTON_BROWSER_PRINT} DIBUTTON_BROWSER_DEVICE = $280044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_BROWSER_DEVICE} DIBUTTON_BROWSER_PAUSE = $280044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_BROWSER_PAUSE} (*--- Driving Simulator - Giant Walking Robot Walking tank with weapons ---*) DIVIRTUAL_DRIVING_MECHA = $29000000; {$EXTERNALSYM DIVIRTUAL_DRIVING_MECHA} DIAXIS_MECHA_STEER = $29008201; (* Turns mecha left/right *) {$EXTERNALSYM DIAXIS_MECHA_STEER} DIAXIS_MECHA_TORSO = $29010202; (* Tilts torso forward/backward *) {$EXTERNALSYM DIAXIS_MECHA_TORSO} DIAXIS_MECHA_ROTATE = $29020203; (* Turns torso left/right *) {$EXTERNALSYM DIAXIS_MECHA_ROTATE} DIAXIS_MECHA_THROTTLE = $29038204; (* Engine Speed *) {$EXTERNALSYM DIAXIS_MECHA_THROTTLE} DIBUTTON_MECHA_FIRE = $29000401; (* Fire *) {$EXTERNALSYM DIBUTTON_MECHA_FIRE} DIBUTTON_MECHA_WEAPONS = $29000402; (* Select next weapon group *) {$EXTERNALSYM DIBUTTON_MECHA_WEAPONS} DIBUTTON_MECHA_TARGET = $29000403; (* Select closest enemy available target *) {$EXTERNALSYM DIBUTTON_MECHA_TARGET} DIBUTTON_MECHA_REVERSE = $29000404; (* Toggles throttle in/out of reverse *) {$EXTERNALSYM DIBUTTON_MECHA_REVERSE} DIBUTTON_MECHA_ZOOM = $29000405; (* Zoom in/out targeting reticule *) {$EXTERNALSYM DIBUTTON_MECHA_ZOOM} DIBUTTON_MECHA_JUMP = $29000406; (* Fires jump jets *) {$EXTERNALSYM DIBUTTON_MECHA_JUMP} DIBUTTON_MECHA_MENU = $290004FD; (* Show menu options *) {$EXTERNALSYM DIBUTTON_MECHA_MENU} (*--- Priority 2 controls ---*) DIBUTTON_MECHA_CENTER = $29004407; (* Center torso to legs *) {$EXTERNALSYM DIBUTTON_MECHA_CENTER} DIHATSWITCH_MECHA_GLANCE = $29004601; (* Look around *) {$EXTERNALSYM DIHATSWITCH_MECHA_GLANCE} DIBUTTON_MECHA_VIEW = $29004408; (* Cycle through view options *) {$EXTERNALSYM DIBUTTON_MECHA_VIEW} DIBUTTON_MECHA_FIRESECONDARY = $29004409; (* Alternative fire button *) {$EXTERNALSYM DIBUTTON_MECHA_FIRESECONDARY} DIBUTTON_MECHA_LEFT_LINK = $2900C4E4; (* Fallback steer left button *) {$EXTERNALSYM DIBUTTON_MECHA_LEFT_LINK} DIBUTTON_MECHA_RIGHT_LINK = $2900C4EC; (* Fallback steer right button *) {$EXTERNALSYM DIBUTTON_MECHA_RIGHT_LINK} DIBUTTON_MECHA_FORWARD_LINK = $290144E0; (* Fallback tilt torso forward button *) {$EXTERNALSYM DIBUTTON_MECHA_FORWARD_LINK} DIBUTTON_MECHA_BACK_LINK = $290144E8; (* Fallback tilt toroso backward button *) {$EXTERNALSYM DIBUTTON_MECHA_BACK_LINK} DIBUTTON_MECHA_ROTATE_LEFT_LINK = $290244E4; (* Fallback rotate toroso right button *) {$EXTERNALSYM DIBUTTON_MECHA_ROTATE_LEFT_LINK} DIBUTTON_MECHA_ROTATE_RIGHT_LINK = $290244EC; (* Fallback rotate torso left button *) {$EXTERNALSYM DIBUTTON_MECHA_ROTATE_RIGHT_LINK} DIBUTTON_MECHA_FASTER_LINK = $2903C4E0; (* Fallback increase engine speed *) {$EXTERNALSYM DIBUTTON_MECHA_FASTER_LINK} DIBUTTON_MECHA_SLOWER_LINK = $2903C4E8; (* Fallback decrease engine speed *) {$EXTERNALSYM DIBUTTON_MECHA_SLOWER_LINK} DIBUTTON_MECHA_DEVICE = $290044FE; (* Show input device and controls *) {$EXTERNALSYM DIBUTTON_MECHA_DEVICE} DIBUTTON_MECHA_PAUSE = $290044FC; (* Start / Pause / Restart game *) {$EXTERNALSYM DIBUTTON_MECHA_PAUSE} (* * "ANY" semantics can be used as a last resort to get mappings for actions * that match nothing in the chosen virtual genre. These semantics will be * mapped at a lower priority that virtual genre semantics. Also, hardware * vendors will not be able to provide sensible mappings for these unless * they provide application specific mappings. *) DIAXIS_ANY_X_1 = $FF00C201; {$EXTERNALSYM DIAXIS_ANY_X_1} DIAXIS_ANY_X_2 = $FF00C202; {$EXTERNALSYM DIAXIS_ANY_X_2} DIAXIS_ANY_Y_1 = $FF014201; {$EXTERNALSYM DIAXIS_ANY_Y_1} DIAXIS_ANY_Y_2 = $FF014202; {$EXTERNALSYM DIAXIS_ANY_Y_2} DIAXIS_ANY_Z_1 = $FF01C201; {$EXTERNALSYM DIAXIS_ANY_Z_1} DIAXIS_ANY_Z_2 = $FF01C202; {$EXTERNALSYM DIAXIS_ANY_Z_2} DIAXIS_ANY_R_1 = $FF024201; {$EXTERNALSYM DIAXIS_ANY_R_1} DIAXIS_ANY_R_2 = $FF024202; {$EXTERNALSYM DIAXIS_ANY_R_2} DIAXIS_ANY_U_1 = $FF02C201; {$EXTERNALSYM DIAXIS_ANY_U_1} DIAXIS_ANY_U_2 = $FF02C202; {$EXTERNALSYM DIAXIS_ANY_U_2} DIAXIS_ANY_V_1 = $FF034201; {$EXTERNALSYM DIAXIS_ANY_V_1} DIAXIS_ANY_V_2 = $FF034202; {$EXTERNALSYM DIAXIS_ANY_V_2} DIAXIS_ANY_A_1 = $FF03C201; {$EXTERNALSYM DIAXIS_ANY_A_1} DIAXIS_ANY_A_2 = $FF03C202; {$EXTERNALSYM DIAXIS_ANY_A_2} DIAXIS_ANY_B_1 = $FF044201; {$EXTERNALSYM DIAXIS_ANY_B_1} DIAXIS_ANY_B_2 = $FF044202; {$EXTERNALSYM DIAXIS_ANY_B_2} DIAXIS_ANY_C_1 = $FF04C201; {$EXTERNALSYM DIAXIS_ANY_C_1} DIAXIS_ANY_C_2 = $FF04C202; {$EXTERNALSYM DIAXIS_ANY_C_2} DIAXIS_ANY_S_1 = $FF054201; {$EXTERNALSYM DIAXIS_ANY_S_1} DIAXIS_ANY_S_2 = $FF054202; {$EXTERNALSYM DIAXIS_ANY_S_2} DIAXIS_ANY_1 = $FF004201; {$EXTERNALSYM DIAXIS_ANY_1} DIAXIS_ANY_2 = $FF004202; {$EXTERNALSYM DIAXIS_ANY_2} DIAXIS_ANY_3 = $FF004203; {$EXTERNALSYM DIAXIS_ANY_3} DIAXIS_ANY_4 = $FF004204; {$EXTERNALSYM DIAXIS_ANY_4} DIPOV_ANY_1 = $FF004601; {$EXTERNALSYM DIPOV_ANY_1} DIPOV_ANY_2 = $FF004602; {$EXTERNALSYM DIPOV_ANY_2} DIPOV_ANY_3 = $FF004603; {$EXTERNALSYM DIPOV_ANY_3} DIPOV_ANY_4 = $FF004604; {$EXTERNALSYM DIPOV_ANY_4} // #define DIBUTTON_ANY(instance) ( 0xFF004400 | instance ) function DIBUTTON_ANY(instance: Cardinal): Cardinal; {$EXTERNALSYM DIBUTTON_ANY} (**************************************************************************** * * Definitions for non-IDirectInput (VJoyD) features defined more recently * than the current sdk files * ****************************************************************************) //#ifdef _INC_MMSYSTEM //#ifndef MMNOJOY //#ifndef __VJOYDX_INCLUDED__ //#define __VJOYDX_INCLUDED__ const (* * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure * contains mini-driver specific data to be passed by VJoyD to the mini- * driver instead of doing a poll. *) JOY_PASSDRIVERDATA = $10000000; {$EXTERNALSYM JOY_PASSDRIVERDATA} (* * Informs the joystick driver that the configuration has been changed * and should be reloaded from the registery. * dwFlags is reserved and should be set to zero *) const WinMMDll = 'WinMM.dll'; {$IFDEF DIRECTINPUT_DYNAMIC_LINK} var joyConfigChanged: function(dwFlags: DWORD): MMRESULT; stdcall; {$ELSE} function joyConfigChanged(dwFlags: DWORD): MMRESULT; stdcall; external WinMMDll; {$ENDIF} {$EXTERNALSYM joyConfigChanged} (* * Invoke the joystick control panel directly, using the passed window handle * as the parent of the dialog. This API is only supported for compatibility * purposes; new applications should use the RunControlPanel method of a * device interface for a game controller. * The API is called by using the function pointer returned by * GetProcAddress( hCPL, TEXT("ShowJoyCPL") ) where hCPL is a HMODULE returned * by LoadLibrary( TEXT("joy.cpl") ). The typedef is provided to allow * declaration and casting of an appropriately typed variable. *) const JoyCPL = 'joy.cpl'; type TShowJoyCPL = procedure(hWnd: HWND); stdcall; {$IFDEF DIRECTINPUT_DYNAMIC_LINK} var ShowJoyCPL: TShowJoyCPL; {$ELSE} procedure ShowJoyCPL(hWnd: HWND); stdcall; external JoyCPL; {$ENDIF} {$EXTERNALSYM ShowJoyCPL} const (* * Hardware Setting indicating that the device is a headtracker *) JOY_HWS_ISHEADTRACKER = $02000000; {$EXTERNALSYM JOY_HWS_ISHEADTRACKER} (* * Hardware Setting indicating that the VxD is used to replace * the standard analog polling *) JOY_HWS_ISGAMEPORTDRIVER = $04000000; {$EXTERNALSYM JOY_HWS_ISGAMEPORTDRIVER} (* * Hardware Setting indicating that the driver needs a standard * gameport in order to communicate with the device. *) JOY_HWS_ISANALOGPORTDRIVER = $08000000; {$EXTERNALSYM JOY_HWS_ISANALOGPORTDRIVER} (* * Hardware Setting indicating that VJoyD should not load this * driver, it will be loaded externally and will register with * VJoyD of it's own accord. *) JOY_HWS_AUTOLOAD = $10000000; {$EXTERNALSYM JOY_HWS_AUTOLOAD} (* * Hardware Setting indicating that the driver acquires any * resources needed without needing a devnode through VJoyD. *) JOY_HWS_NODEVNODE = $20000000; {$EXTERNALSYM JOY_HWS_NODEVNODE} (* * Hardware Setting indicating that the device is a gameport bus *) JOY_HWS_ISGAMEPORTBUS = $80000000; {$EXTERNALSYM JOY_HWS_ISGAMEPORTBUS} JOY_HWS_GAMEPORTBUSBUSY = $00000001; {$EXTERNALSYM JOY_HWS_GAMEPORTBUSBUSY} (* * Usage Setting indicating that the settings are volatile and * should be removed if still present on a reboot. *) JOY_US_VOLATILE = $00000008; {$EXTERNALSYM JOY_US_VOLATILE} //#endif (* __VJOYDX_INCLUDED__ *) //#endif (* not MMNOJOY *) //#endif (* _INC_MMSYSTEM *) (**************************************************************************** * * Definitions for non-IDirectInput (VJoyD) features defined more recently * than the current ddk files * ****************************************************************************) //#ifdef _INC_MMDDK //#ifndef MMNOJOYDEV //#ifndef __VJOYDXD_INCLUDED__ //#define __VJOYDXD_INCLUDED__ const (* * Poll type in which the do_other field of the JOYOEMPOLLDATA * structure contains mini-driver specific data passed from an app. *) JOY_OEMPOLL_PASSDRIVERDATA = 7; {$EXTERNALSYM JOY_OEMPOLL_PASSDRIVERDATA} //#endif (* __VJOYDXD_INCLUDED__ *) //#endif (* not MMNOJOYDEV *) //#endif (* _INC_MMDDK *) implementation //#define DIEFT_GETTYPE(n) LOBYTE(n) function DIEFT_GETTYPE(n: Cardinal): Byte; begin Result := LOBYTE(n); end; // #define GET_DIDEVICE_TYPE(dwDevType) LOBYTE(dwDevType) function GET_DIDEVICE_TYPE(dwDevType: DWORD): Byte; begin Result := LOBYTE(dwDevType); end; // #define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType) function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): Byte; begin Result := HiByte(Word(dwDevType)); end; // #define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8) function DIDFT_MAKEINSTANCE(n: Cardinal): Cardinal; begin Result := Word(n) shl 8; end; // #define DIDFT_GETTYPE(n) LOBYTE(n) function DIDFT_GETTYPE(n: Cardinal): Byte; begin Result := LOBYTE(n); end; // #define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8) function DIDFT_GETINSTANCE(n: Cardinal): Cardinal; begin Result := LOWORD(n) shr 8; end; // #define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8) function DIDFT_ENUMCOLLECTION(n: Cardinal): Cardinal; begin Result := Word(n) shl 8; end; {$IFDEF DIRECTINPUT_VERSION_5b} (* #if(DIRECTINPUT_VERSION >= 0x050a) *) // #define DIMAKEUSAGEDWORD(UsagePage, Usage) \ // (DWORD)MAKELONG(Usage, UsagePage) function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; begin Result:= DWORD(MakeLong(UsagePage, Usage)); end; {$ENDIF} (* DIRECTINPUT_VERSION >= 0x050a *) // #define DIJOFS_SLIDER(n) (FIELD_OFFSET(DIJOYSTATE, rglSlider) + \ // (n) * sizeof(LONG)) function DIJOFS_SLIDER(n: Cardinal): Cardinal; begin Result := Cardinal(@PDIJoyState(nil)^.rglSlider) + n*SizeOf(DWORD); // + 24; end; // #define DIJOFS_POV(n) (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + \ // (n) * sizeof(DWORD)) function DIJOFS_POV(n: Cardinal): Cardinal; begin Result := Cardinal(@PDIJoyState(nil).rgdwPOV) + n*SizeOf(DWORD); // + 32; end; // #define DIJOFS_BUTTON(n) (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n)) function DIJOFS_BUTTON(n: Cardinal): Cardinal; begin Result := Cardinal(@PDIJoyState(nil).rgbButtons) + n*SizeOf(DWORD); // + 48; end; // #define DIBUTTON_ANY(instance) ( 0xFF004400 | instance ) function DIBUTTON_ANY(instance: Cardinal): Cardinal; begin Result := $FF004400 or instance; end; {$IFDEF DIRECTINPUT_DYNAMIC_LINK} var DirectInputLib: THandle = 0; DirectInput8Lib: THandle = 0; WinMMLib: THandle = 0; JoyCPLLib: THandle = 0; function DirectInputLoaded: Boolean; begin Result:= (DirectInputLib <> 0) and (DirectInput8Lib<>0); end; function UnLoadDirectInput: Boolean; begin Result:= True; if (DirectInputLib <> 0) then begin Result:= Result and FreeLibrary(DirectInputLib); DirectInputCreateA:= nil; DirectInputCreateW:= nil; DirectInputCreate:= nil; DirectInputCreateEx:= nil; DirectInputLib:= 0; end; if (DirectInput8Lib <> 0) then begin Result:= Result and FreeLibrary(DirectInput8Lib); DirectInput8Create:= nil; DirectInput8Lib:= 0; end; if (WinMMLib <> 0) then begin Result:= Result and FreeLibrary(WinMMLib); joyConfigChanged:= nil; WinMMLib:= 0; end; if (JoyCPLLib <> 0) then begin Result:= Result and FreeLibrary(JoyCPLLib); ShowJoyCPL:= nil; JoyCPLLib:= 0; end; end; function LoadDirectInput: Boolean; begin Result:= DirectInputLoaded; if (not Result) then begin DirectInputLib:= LoadLibrary(DirectInputDll); if (DirectInputLib<>0) then begin DirectInputCreateA:= GetProcAddress(DirectInputLib, 'DirectInputCreateA'); DirectInputCreateW:= GetProcAddress(DirectInputLib, 'DirectInputCreateW'); {$IFDEF UNICODE} DirectInputCreate:= GetProcAddress(DirectInputLib, 'DirectInputCreateW'); {$ELSE} DirectInputCreate:= GetProcAddress(DirectInputLib, 'DirectInputCreateA'); {$ENDIF} DirectInputCreateEx:= GetProcAddress(DirectInputLib, 'DirectInputCreateEx'); end; DirectInput8Lib:= LoadLibrary(DirectInput8Dll); if (DirectInput8Lib<>0) then begin DirectInput8Create:= GetProcAddress(DirectInput8Lib, 'DirectInput8Create'); end; WinMMLib:= LoadLibrary(WinMMDll); if (WinMMLib <> 0) then begin joyConfigChanged:= GetProcAddress(WinMMLib, 'joyConfigChanged'); end; JoyCPLLib:= LoadLibrary(JoyCPL); if (JoyCPLLib <> 0) then begin ShowJoyCPL:= GetProcAddress(JoyCPLLib, 'ShowJoyCPL'); end; // At least basic procedure is found! Result:= Assigned(DirectInputCreate) or Assigned(DirectInput8Create); if not Result then UnLoadDirectInput; end; end; {$ELSE} function DirectInputLoaded: Boolean; begin // Stub function for static linking Result:= True; end; function UnLoadDirectInput: Boolean; begin // Stub function for static linking Result:= True; // should emulate "normal" behaviour end; function LoadDirectInput: Boolean; begin // Stub function for static linking Result:= True; end; {$ENDIF} {$IFDEF DIRECTINPUT_DYNAMIC_LINK} initialization {$IFNDEF DIRECTINPUT_DYNAMIC_LINK_EXPLICIT} LoadDirectInput; {$ENDIF} finalization UnLoadDirectInput; {$ENDIF} end.