📄 directinput.pas
字号:
guidProduct : TGUID;
dwDevType : Cardinal;
tszInstanceName : Array [0..MAX_PATH-1] of AnsiChar;
tszProductName : Array [0..MAX_PATH-1] of AnsiChar;
end;
PDIDeviceInstance_DX3W = ^TDIDeviceInstance_DX3W;
TDIDeviceInstance_DX3W = packed record
dwSize : Cardinal;
guidInstance : TGUID;
guidProduct : TGUID;
dwDevType : Cardinal;
tszInstanceName : Array [0..MAX_PATH-1] of WideChar;
tszProductName : Array [0..MAX_PATH-1] of WideChar;
end;
PDIDeviceInstance_DX3 = ^TDIDeviceInstance_DX3;
{$IFDEF UNICODE}
TDIDeviceInstance_DX3 = TDIDeviceInstance_DX3W;
{$ELSE}
TDIDeviceInstance_DX3 = TDIDeviceInstance_DX3A;
{$ENDIF}
PDIDeviceInstance_DX5A = ^TDIDeviceInstance_DX5A;
TDIDeviceInstance_DX5A = packed record
dwSize : Cardinal;
guidInstance : TGUID;
guidProduct : TGUID;
dwDevType : Cardinal;
tszInstanceName : Array [0..MAX_PATH-1] of AnsiChar;
tszProductName : Array [0..MAX_PATH-1] of AnsiChar;
guidFFDriver : TGUID;
wUsagePage : WORD;
wUsage : WORD;
end;
PDIDeviceInstance_DX5W = ^TDIDeviceInstance_DX5W;
TDIDeviceInstance_DX5W = packed record
dwSize : Cardinal;
guidInstance : TGUID;
guidProduct : TGUID;
dwDevType : Cardinal;
tszInstanceName : Array [0..MAX_PATH-1] of WideChar;
tszProductName : Array [0..MAX_PATH-1] of WideChar;
guidFFDriver : TGUID;
wUsagePage : WORD;
wUsage : WORD;
end;
PDIDeviceInstance_DX5 = ^TDIDeviceInstance_DX5;
{$IFDEF UNICODE}
TDIDeviceInstance_DX5 = TDIDeviceInstance_DX5W;
{$ELSE}
TDIDeviceInstance_DX5 = TDIDeviceInstance_DX5A;
{$ENDIF}
PDIDeviceInstanceA = ^TDIDeviceInstanceA;
PDIDeviceInstanceW = ^TDIDeviceInstanceW;
PDIDeviceInstance = ^TDIDeviceInstance;
{$IFDEF DIRECTX3}
TDIDeviceInstanceA = TDIDeviceInstance_DX3A;
TDIDeviceInstanceW = TDIDeviceInstance_DX3W;
TDIDeviceInstance = TDIDeviceInstance_DX3;
{$ELSE}
TDIDeviceInstanceA = TDIDeviceInstance_DX5A;
TDIDeviceInstanceW = TDIDeviceInstance_DX5W;
TDIDeviceInstance = TDIDeviceInstance_DX5;
{$ENDIF}
PDIDeviceObjectData_DX3 = ^TDIDeviceObjectData_DX3;
TDIDeviceObjectData_DX3 = packed record
dwOfs : Cardinal;
dwData : Cardinal;
dwTimeStamp : Cardinal;
dwSequence : Cardinal;
end;
PDIDeviceObjectData_DX8 = ^TDIDeviceObjectData_DX8;
TDIDeviceObjectData_DX8 = packed record
dwOfs : Cardinal;
dwData : Cardinal;
dwTimeStamp : Cardinal;
dwSequence : Cardinal;
uAppData : Pointer;
end;
PDIDeviceObjectData = ^TDIDeviceObjectData;
{$IFDEF DIRECTX3}
TDIDeviceObjectData = TDIDeviceObjectData_DX3;
{$ELSE}
{$IFDEF DIRECTX5}
TDIDeviceObjectData = TDIDeviceObjectData_DX3;
{$ELSE}
{$IFDEF DIRECTX7}
TDIDeviceObjectData = TDIDeviceObjectData_DX3;
{$ELSE}
TDIDeviceObjectData = TDIDeviceObjectData_DX8;
{$ENDIF}
{$ENDIF}
{$ENDIF}
PDIDeviceObjectInstance_DX3A = ^TDIDeviceObjectInstance_DX3A;
TDIDeviceObjectInstance_DX3A = packed record
dwSize : Cardinal;
guidType : TGUID;
dwOfs : Cardinal;
dwType : Cardinal;
dwFlags : Cardinal;
tszName : Array [0..MAX_PATH-1] of CHAR;
end;
PDIDeviceObjectInstance_DX3W = ^TDIDeviceObjectInstance_DX3W;
TDIDeviceObjectInstance_DX3W = packed record
dwSize : Cardinal;
guidType : TGUID;
dwOfs : Cardinal;
dwType : Cardinal;
dwFlags : Cardinal;
tszName : Array [0..MAX_PATH-1] of WCHAR;
end;
PDIDeviceObjectInstance_DX3 = ^TDIDeviceObjectInstance_DX3;
{$IFDEF UNICODE}
TDIDeviceObjectInstance_DX3 = TDIDeviceObjectInstance_DX3W;
{$ELSE}
TDIDeviceObjectInstance_DX3 = TDIDeviceObjectInstance_DX3A;
{$ENDIF}
PDIDeviceObjectInstance_DX5A = ^TDIDeviceObjectInstance_DX5A;
TDIDeviceObjectInstance_DX5A = packed record
dwSize : Cardinal;
guidType : TGUID;
dwOfs : Cardinal;
dwType : Cardinal;
dwFlags : Cardinal;
tszName : Array [0..MAX_PATH-1] of CHAR;
dwFFMaxForce : Cardinal;
dwFFForceResolution : Cardinal;
wCollectionNumber : Word;
wDesignatorIndex : Word;
wUsagePage : Word;
wUsage : Word;
dwDimension : Cardinal;
wExponent : Word;
wReserved : Word;
end;
PDIDeviceObjectInstance_DX5W = ^TDIDeviceObjectInstance_DX5W;
TDIDeviceObjectInstance_DX5W = packed record
dwSize : Cardinal;
guidType : TGUID;
dwOfs : Cardinal;
dwType : Cardinal;
dwFlags : Cardinal;
tszName : Array [0..MAX_PATH-1] of WCHAR;
dwFFMaxForce : Cardinal;
dwFFForceResolution : Cardinal;
wCollectionNumber : WORD;
wDesignatorIndex : WORD;
wUsagePage : WORD;
wUsage : WORD;
dwDimension : Cardinal;
wExponent : WORD;
wReserved : WORD;
end;
PDIDeviceObjectInstance_DX5 = ^TDIDeviceObjectInstance_DX5;
{$IFDEF UNICODE}
TDIDeviceObjectInstance_DX5 = TDIDeviceObjectInstance_DX5W;
{$ELSE}
TDIDeviceObjectInstance_DX5 = TDIDeviceObjectInstance_DX5A;
{$ENDIF}
PDIDeviceObjectInstanceA = ^TDIDeviceObjectInstanceA;
PDIDeviceObjectInstanceW = ^TDIDeviceObjectInstanceA;
PDIDeviceObjectInstance = ^TDIDeviceObjectInstance;
{$IFDEF DIRECTX3}
TDIDeviceObjectInstanceA = TDIDeviceObjectInstance_DX3A;
TDIDeviceObjectInstanceW = TDIDeviceObjectInstance_DX3W;
TDIDeviceObjectInstance = TDIDeviceObjectInstance_DX3;
{$ELSE}
TDIDeviceObjectInstanceA = TDIDeviceObjectInstance_DX5A;
TDIDeviceObjectInstanceW = TDIDeviceObjectInstance_DX5W;
TDIDeviceObjectInstance = TDIDeviceObjectInstance_DX5;
{$ENDIF}
PDIEnvelope = ^TDIEnvelope;
TDIEnvelope = packed record
dwSize : Cardinal; (* sizeof(DIENVELOPE) *)
dwAttackLevel : Cardinal;
dwAttackTime : Cardinal; (* Microseconds *)
dwFadeLevel : Cardinal;
dwFadeTime : Cardinal; (* Microseconds *)
end;
PDIEffect_DX5 = ^TDIEffect_DX5;
TDIEffect_DX5 = packed record
dwSize : Cardinal; (* sizeof(DIEFFECT) *)
dwFlags : Cardinal; (* DIEFF_* *)
dwDuration : Cardinal; (* Microseconds *)
dwSamplePeriod : Cardinal; (* Microseconds *)
dwGain : Cardinal;
dwTriggerButton : Cardinal; (* or DIEB_NOTRIGGER *)
dwTriggerRepeatInterval : Cardinal; (* Microseconds *)
cAxes : Cardinal; (* Number of axes *)
rgdwAxes : PDWORD; (* Array of axes *)
rglDirection : PLongInt; (* Array of directions *)
lpEnvelope : PDIEnvelope; (* Optional *)
cbTypeSpecificParams : Cardinal; (* Size of params *)
lpvTypeSpecificParams : Pointer; (* Pointer to params *)
end;
PDIEffect_DX6 = ^TDIEffect_DX6;
TDIEffect_DX6 = packed record
dwSize : Cardinal; (* sizeof(DIEFFECT) *)
dwFlags : Cardinal; (* DIEFF_* *)
dwDuration : Cardinal; (* Microseconds *)
dwSamplePeriod : Cardinal; (* Microseconds *)
dwGain : Cardinal;
dwTriggerButton : Cardinal; (* or DIEB_NOTRIGGER *)
dwTriggerRepeatInterval : Cardinal; (* Microseconds *)
cAxes : Cardinal; (* Number of axes *)
rgdwAxes : PDWORD; (* Array of axes *)
rglDirection : PLongInt; (* Array of directions *)
lpEnvelope : PDIEnvelope; (* Optional *)
cbTypeSpecificParams : Cardinal; (* Size of params *)
lpvTypeSpecificParams : pointer; (* Pointer to params *)
dwStartDelay : Cardinal; (* Microseconds *)
end;
PDIEffect = ^TDIEffect;
{$IFDEF DIRECTX5}
TDIEffect = TDIEffect_DX5;
{$ELSE}
TDIEffect = TDIEffect_DX6;
{$ENDIF}
PDIEffectInfoA = ^TDIEffectInfoA;
TDIEffectInfoA = packed record
dwSize : Cardinal;
guid : TGUID;
dwEffType : Cardinal;
dwStaticParams : Cardinal;
dwDynamicParams : Cardinal;
tszName : array [0..MAX_PATH-1] of CHAR;
end;
PDIEffectInfoW = ^TDIEffectInfoW;
TDIEffectInfoW = packed record
dwSize : Cardinal;
guid : TGUID;
dwEffType : Cardinal;
dwStaticParams : Cardinal;
dwDynamicParams : Cardinal;
tszName : array [0..MAX_PATH-1] of WCHAR;
end;
PDIEffectInfo = ^TDIEffectInfo;
{$IFDEF UNICODE}
TDIEffectInfo = TDIEffectInfoW;
{$ELSE}
TDIEffectInfo = TDIEffectInfoA;
{$ENDIF}
PDIEffEscape = ^TDIEffEscape;
TDIEffEscape = packed record
dwSize : Cardinal;
dwCommand : Cardinal;
lpvInBuffer : pointer;
cbInBuffer : Cardinal;
lpvOutBuffer : pointer;
cbOutBuffer : Cardinal;
end;
PDIFileEffect = ^TDIFileEffect;
TDIFileEffect = packed record
dwSize : Cardinal;
GuidEffect : TGUID;
lpDiEffect : PDIEffect;
szFriendlyName : array [0..MAX_PATH-1] of AnsiChar;
end;
PDIJoyState = ^TDIJoyState;
TDIJoyState = 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 Cardinal; (* POV directions *)
rgbButtons : array [0..31] of Byte; (* 32 buttons *)
end;
PDIJoyState2 = ^TDIJoyState2;
TDIJoyState2 = 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 Cardinal; (* 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;
TDIKeyboardState = array[0..255] of Byte;
PDIMouseState = ^TDIMouseState;
TDIMouseState = packed record
lX: Longint;
lY: Longint;
lZ: Longint;
rgbButtons: Array [0..3] of Byte; // up to 4 buttons
end;
PDIMouseState2 = ^TDIMouseState2;
TDIMouseState2 = packed record
lX: Longint;
lY: Longint;
lZ: Longint;
rgbButtons: Array [0..7] of Byte; // up to 8 buttons
end;
PDIPeriodic = ^TDIPeriodic;
TDIPeriodic = packed record
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -