⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directinput.pas

📁 雷神之锤2(Quake2)Delphi源码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -