📄 directinput.pas
字号:
DIDSAM_NOUSER = $00000001;
DIDSAM_FORCESAVE = $00000002;
DICD_DEFAULT = $00000000;
DICD_EDIT = $00000001;
DIDIFT_CONFIGURATION = $00000001;
DIDIFT_OVERLAY = $00000002;
DIDAL_CENTERED = $00000000;
DIDAL_LEFTALIGNED = $00000001;
DIDAL_RIGHTALIGNED = $00000002;
DIDAL_MIDDLE = $00000000;
DIDAL_TOPALIGNED = $00000004;
DIDAL_BOTTOMALIGNED = $00000008;
DIDOI_FFACTUATOR = $00000001;
DIDOI_FFEFFECTTRIGGER = $00000002;
DIDOI_POLLED = $00008000;
DIDOI_ASPECTPOSITION = $00000100;
DIDOI_ASPECTVELOCITY = $00000200;
DIDOI_ASPECTACCEL = $00000300;
DIDOI_ASPECTFORCE = $00000400;
DIDOI_ASPECTMASK = $00000F00;
DIDOI_GUIDISUSAGE = $00010000;
DIPH_DEVICE = 0;
DIPH_BYOFFSET = 1;
DIPH_BYID = 2;
DIPH_BYUSAGE = 3;
DIPROPRANGE_NOMIN = $80000000;
DIPROPRANGE_NOMAX = $7FFFFFFF;
DIPROP_BUFFERSIZE = MAKEDIPROP(1);
DIPROP_AXISMODE = MAKEDIPROP(2);
DIPROPAXISMODE_ABS = 0;
DIPROPAXISMODE_REL = 1;
DIPROP_GRANULARITY = MAKEDIPROP(3);
DIPROP_RANGE = MAKEDIPROP(4);
DIPROP_DEADZONE = MAKEDIPROP(5);
DIPROP_SATURATION = MAKEDIPROP(6);
DIPROP_FFGAIN = MAKEDIPROP(7);
DIPROP_FFLOAD = MAKEDIPROP(8);
DIPROP_AUTOCENTER = MAKEDIPROP(9);
DIPROPAUTOCENTER_OFF = 0;
DIPROPAUTOCENTER_ON = 1;
DIPROP_CALIBRATIONMODE = MAKEDIPROP(10);
DIPROPCALIBRATIONMODE_COOKED = 0;
DIPROPCALIBRATIONMODE_RAW = 1;
DIPROP_CALIBRATION = MAKEDIPROP(11);
DIPROP_GUIDANDPATH = MAKEDIPROP(12);
DIPROP_INSTANCENAME = MAKEDIPROP(13);
DIPROP_PRODUCTNAME = MAKEDIPROP(14);
DIPROP_JOYSTICKID = MAKEDIPROP(15);
DIPROP_GETPORTDISPLAYNAME = MAKEDIPROP(16);
DIPROP_ENABLEREPORTID = MAKEDIPROP(17);
DIPROP_GETPHYSICALRANGE = MAKEDIPROP(18);
DIPROP_GETLOGICALRANGE = MAKEDIPROP(19);
DIPROP_KEYNAME = MAKEDIPROP(20);
DIPROP_CPOINTS = MAKEDIPROP(21);
DIPROP_APPDATA = MAKEDIPROP(22);
DIPROP_SCANCODE = MAKEDIPROP(23);
DIPROP_VIDPID = MAKEDIPROP(24);
DIPROP_USERNAME = MAKEDIPROP(25);
DIPROP_TYPENAME = MAKEDIPROP(26);
DIGDD_PEEK = $00000001;
{
#define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \
(int) ((dwSequence1) - (dwSequence2)) cmp 0
}
DISCL_EXCLUSIVE = $00000001;
DISCL_NONEXCLUSIVE = $00000002;
DISCL_FOREGROUND = $00000004;
DISCL_BACKGROUND = $00000008;
DISCL_NOWINKEY = $00000010;
DISFFC_RESET = $00000001;
DISFFC_STOPALL = $00000002;
DISFFC_PAUSE = $00000004;
DISFFC_CONTINUE = $00000008;
DISFFC_SETACTUATORSON = $00000010;
DISFFC_SETACTUATORSOFF = $00000020;
DIGFFS_EMPTY = $00000001;
DIGFFS_STOPPED = $00000002;
DIGFFS_PAUSED = $00000004;
DIGFFS_ACTUATORSON = $00000010;
DIGFFS_ACTUATORSOFF = $00000020;
DIGFFS_POWERON = $00000040;
DIGFFS_POWEROFF = $00000080;
DIGFFS_SAFETYSWITCHON = $00000100;
DIGFFS_SAFETYSWITCHOFF = $00000200;
DIGFFS_USERFFSWITCHON = $00000400;
DIGFFS_USERFFSWITCHOFF = $00000800;
DIGFFS_DEVICELOST = $80000000;
DISDD_CONTINUE = $00000001;
DIFEF_DEFAULT = $00000000;
DIFEF_INCLUDENONSTANDARD = $00000001;
DIFEF_MODIFYIFNEEDED = $00000010;
DIMOFS_X = 0;
DIMOFS_Y = 4;
DIMOFS_Z = 8;
DIMOFS_BUTTON0 = 12;
DIMOFS_BUTTON1 = 13;
DIMOFS_BUTTON2 = 14;
DIMOFS_BUTTON3 = 15;
// DX7 supports up to 8 mouse buttons
DIMOFS_BUTTON4 = DIMOFS_BUTTON0 + 4;
DIMOFS_BUTTON5 = DIMOFS_BUTTON0 + 5;
DIMOFS_BUTTON6 = DIMOFS_BUTTON0 + 6;
DIMOFS_BUTTON7 = DIMOFS_BUTTON0 + 7;
_c_dfDIMouse_Objects: array[0..6] of TDIObjectDataFormat = (
( pguid: @GUID_XAxis;
dwOfs: DIMOFS_X;
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: @GUID_YAxis;
dwOfs: DIMOFS_Y;
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: @GUID_ZAxis;
dwOfs: DIMOFS_Z;
dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON0;
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON1;
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON2;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON3;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0)
);
c_dfDIMouse: TDIDataFormat = (
dwSize: Sizeof(c_dfDIMouse); // $18
dwObjSize: Sizeof(TDIObjectDataFormat); // $10
dwFlags: DIDF_RELAXIS; //
dwDataSize: Sizeof(TDIMouseState); // $10
dwNumObjs: High(_c_dfDIMouse_Objects)+1; // 7
rgodf: @_c_dfDIMouse_Objects[Low(_c_dfDIMouse_Objects)]
);
_c_dfDIMouse2_Objects: array[0..10] of TDIObjectDataFormat = (
( pguid: @GUID_XAxis;
dwOfs: DIMOFS_X;
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: @GUID_YAxis;
dwOfs: DIMOFS_Y;
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: @GUID_ZAxis;
dwOfs: DIMOFS_Z;
dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON0;
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON1;
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON2;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON3;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
// fields introduced with IDirectInputDevice7.GetDeviceState
( pguid: nil;
dwOfs: DIMOFS_BUTTON4;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON5;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON6;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0),
( pguid: nil;
dwOfs: DIMOFS_BUTTON7;
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION;
dwFlags: 0)
);
c_dfDIMouse2: TDIDataFormat = (
dwSize: Sizeof(c_dfDIMouse); // $18
dwObjSize: Sizeof(TDIObjectDataFormat); // $10
dwFlags: DIDF_RELAXIS; //
dwDataSize: Sizeof(TDIMouseState2); // $14
dwNumObjs: High(_c_dfDIMouse_Objects)+1; // 11
rgodf: @_c_dfDIMouse2_Objects[Low(_c_dfDIMouse2_Objects)]
);
DIK_ESCAPE = $01;
DIK_1 = $02;
DIK_2 = $03;
DIK_3 = $04;
DIK_4 = $05;
DIK_5 = $06;
DIK_6 = $07;
DIK_7 = $08;
DIK_8 = $09;
DIK_9 = $0A;
DIK_0 = $0B;
DIK_MINUS = $0C; (* - on main keyboard *)
DIK_EQUALS = $0D;
DIK_BACK = $0E; (* backspace *)
DIK_TAB = $0F;
DIK_Q = $10;
DIK_W = $11;
DIK_E = $12;
DIK_R = $13;
DIK_T = $14;
DIK_Y = $15;
DIK_U = $16;
DIK_I = $17;
DIK_O = $18;
DIK_P = $19;
DIK_LBRACKET = $1A;
DIK_RBRACKET = $1B;
DIK_RETURN = $1C; (* Enter on main keyboard *)
DIK_LCONTROL = $1D;
DIK_A = $1E;
DIK_S = $1F;
DIK_D = $20;
DIK_F = $21;
DIK_G = $22;
DIK_H = $23;
DIK_J = $24;
DIK_K = $25;
DIK_L = $26;
DIK_SEMICOLON = $27;
DIK_APOSTROPHE = $28;
DIK_GRAVE = $29; (* accent grave *)
DIK_LSHIFT = $2A;
DIK_BACKSLASH = $2B;
DIK_Z = $2C;
DIK_X = $2D;
DIK_C = $2E;
DIK_V = $2F;
DIK_B = $30;
DIK_N = $31;
DIK_M = $32;
DIK_COMMA = $33;
DIK_PERIOD = $34; (* . on main keyboard *)
DIK_SLASH = $35; (* / on main keyboard *)
DIK_RSHIFT = $36;
DIK_MULTIPLY = $37; (* * on numeric keypad *)
DIK_LMENU = $38; (* left Alt *)
DIK_SPACE = $39;
DIK_CAPITAL = $3A;
DIK_F1 = $3B;
DIK_F2 = $3C;
DIK_F3 = $3D;
DIK_F4 = $3E;
DIK_F5 = $3F;
DIK_F6 = $40;
DIK_F7 = $41;
DIK_F8 = $42;
DIK_F9 = $43;
DIK_F10 = $44;
DIK_NUMLOCK = $45;
DIK_SCROLL = $46; (* Scroll Lock *)
DIK_NUMPAD7 = $47;
DIK_NUMPAD8 = $48;
DIK_NUMPAD9 = $49;
DIK_SUBTRACT = $4A; (* - on numeric keypad *)
DIK_NUMPAD4 = $4B;
DIK_NUMPAD5 = $4C;
DIK_NUMPAD6 = $4D;
DIK_ADD = $4E; (* + on numeric keypad *)
DIK_NUMPAD1 = $4F;
DIK_NUMPAD2 = $50;
DIK_NUMPAD3 = $51;
DIK_NUMPAD0 = $52;
DIK_DECIMAL = $53; (* . on numeric keypad *)
// $54 to $55 unassigned
DIK_OEM_102 = $56; (* < > | on UK/Germany keyboards *)
DIK_F11 = $57;
DIK_F12 = $58;
// $59 to $63 unassigned
DIK_F13 = $64; (* (NEC PC98) *)
DIK_F14 = $65; (* (NEC PC98) *)
DIK_F15 = $66; (* (NEC PC98) *)
// $67 to $6F unassigned
DIK_KANA = $70; (* (Japanese keyboard) *)
DIK_ABNT_C1 = $73; (* / ? on Portugese (Brazilian) keyboards *)
// $74 to $78 unassigned
DIK_CONVERT = $79; (* (Japanese keyboard) *)
// $7A unassigned
DIK_NOCONVERT = $7B; (* (Japanese keyboard) *)
// $7C unassigned
DIK_YEN = $7D; (* (Japanese keyboard) *)
DIK_ABNT_C2 = $7E; (* Numpad . on Portugese (Brazilian) keyboards *)
// $7F to 8C unassigned
DIK_NUMPADEQUALS = $8D; (* = on numeric keypad (NEC PC98) *)
// $8E to $8F unassigned
DIK_CIRCUMFLEX = $90; (* (Japanese keyboard) *)
DIK_AT = $91; (* (NEC PC98) *)
DIK_COLON = $92; (* (NEC PC98) *)
DIK_UNDERLINE = $93; (* (NEC PC98) *)
DIK_KANJI = $94; (* (Japanese keyboard) *)
DIK_STOP = $95; (* (NEC PC98) *)
DIK_AX = $96; (* (Japan AX) *)
DIK_UNLABELED = $97; (* (J3100) *)
// $98 unassigned
DIK_NEXTTRACK = $99; (* Next Track *)
// $9A to $9D unassigned
DIK_NUMPADENTER = $9C; (* Enter on numeric keypad *)
DIK_RCONTROL = $9D;
// $9E to $9F unassigned
DIK_MUTE = $A0; (* Mute *)
DIK_CALCULATOR = $A1; (* Calculator *)
DIK_PLAYPAUSE = $A2; (* Play / Pause *)
DIK_MEDIASTOP = $A4; (* Media Stop *)
// $A5 to $AD unassigned
DIK_VOLUMEDOWN = $AE; (* Volume - *)
// $AF unassigned
DIK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -