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

📄 xinput.pas

📁 3D GameStudio 的Delphi开发包
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  VK_PAD_LSHOULDER                = $5805;
  {$EXTERNALSYM VK_PAD_LSHOULDER}
  VK_PAD_LTRIGGER                 = $5806;
  {$EXTERNALSYM VK_PAD_LTRIGGER}
  VK_PAD_RTRIGGER                 = $5807;
  {$EXTERNALSYM VK_PAD_RTRIGGER}

  VK_PAD_DPAD_UP                  = $5810;
  {$EXTERNALSYM VK_PAD_DPAD_UP}
  VK_PAD_DPAD_DOWN                = $5811;
  {$EXTERNALSYM VK_PAD_DPAD_DOWN}
  VK_PAD_DPAD_LEFT                = $5812;
  {$EXTERNALSYM VK_PAD_DPAD_LEFT}
  VK_PAD_DPAD_RIGHT               = $5813;
  {$EXTERNALSYM VK_PAD_DPAD_RIGHT}
  VK_PAD_START                    = $5814;
  {$EXTERNALSYM VK_PAD_START}
  VK_PAD_BACK                     = $5815;
  {$EXTERNALSYM VK_PAD_BACK}
  VK_PAD_LTHUMB_PRESS             = $5816;
  {$EXTERNALSYM VK_PAD_LTHUMB_PRESS}
  VK_PAD_RTHUMB_PRESS             = $5817;
  {$EXTERNALSYM VK_PAD_RTHUMB_PRESS}

  VK_PAD_LTHUMB_UP                = $5820;
  {$EXTERNALSYM VK_PAD_LTHUMB_UP}
  VK_PAD_LTHUMB_DOWN              = $5821;
  {$EXTERNALSYM VK_PAD_LTHUMB_DOWN}
  VK_PAD_LTHUMB_RIGHT             = $5822;
  {$EXTERNALSYM VK_PAD_LTHUMB_RIGHT}
  VK_PAD_LTHUMB_LEFT              = $5823;
  {$EXTERNALSYM VK_PAD_LTHUMB_LEFT}
  VK_PAD_LTHUMB_UPLEFT            = $5824;
  {$EXTERNALSYM VK_PAD_LTHUMB_UPLEFT}
  VK_PAD_LTHUMB_UPRIGHT           = $5825;
  {$EXTERNALSYM VK_PAD_LTHUMB_UPRIGHT}
  VK_PAD_LTHUMB_DOWNRIGHT         = $5826;
  {$EXTERNALSYM VK_PAD_LTHUMB_DOWNRIGHT}
  VK_PAD_LTHUMB_DOWNLEFT          = $5827;
  {$EXTERNALSYM VK_PAD_LTHUMB_DOWNLEFT}

  VK_PAD_RTHUMB_UP                = $5830;
  {$EXTERNALSYM VK_PAD_RTHUMB_UP}
  VK_PAD_RTHUMB_DOWN              = $5831;
  {$EXTERNALSYM VK_PAD_RTHUMB_DOWN}
  VK_PAD_RTHUMB_RIGHT             = $5832;
  {$EXTERNALSYM VK_PAD_RTHUMB_RIGHT}
  VK_PAD_RTHUMB_LEFT              = $5833;
  {$EXTERNALSYM VK_PAD_RTHUMB_LEFT}
  VK_PAD_RTHUMB_UPLEFT            = $5834;
  {$EXTERNALSYM VK_PAD_RTHUMB_UPLEFT}
  VK_PAD_RTHUMB_UPRIGHT           = $5835;
  {$EXTERNALSYM VK_PAD_RTHUMB_UPRIGHT}
  VK_PAD_RTHUMB_DOWNRIGHT         = $5836;
  {$EXTERNALSYM VK_PAD_RTHUMB_DOWNRIGHT}
  VK_PAD_RTHUMB_DOWNLEFT          = $5837;
  {$EXTERNALSYM VK_PAD_RTHUMB_DOWNLEFT}

  //
  // Flags used in XINPUT_KEYSTROKE
  //
  XINPUT_KEYSTROKE_KEYDOWN        = $0001;
  {$EXTERNALSYM XINPUT_KEYSTROKE_KEYDOWN}
  XINPUT_KEYSTROKE_KEYUP          = $0002;
  {$EXTERNALSYM XINPUT_KEYSTROKE_KEYUP}
  XINPUT_KEYSTROKE_REPEAT         = $0004;
  {$EXTERNALSYM XINPUT_KEYSTROKE_REPEAT}

type

  //
  // Structures used by XInput APIs
  //
  PXInputGamepad = ^TXInputGamepad;
  _XINPUT_GAMEPAD = record
    wButtons:         Word;
    bLeftTrigger:     Byte;
    bRightTrigger:    Byte;
    sThumbLX:         Smallint;
    sThumbLY:         Smallint;
    sThumbRX:         Smallint;
    sThumbRY:         Smallint;
  end;
  {$EXTERNALSYM _XINPUT_GAMEPAD}
  XINPUT_GAMEPAD = _XINPUT_GAMEPAD;
  {$EXTERNALSYM XINPUT_GAMEPAD}
  TXInputGamepad = XINPUT_GAMEPAD;

  PXInputState = ^TXInputState;
  _XINPUT_STATE = record
    dwPacketNumber:   DWORD;
    Gamepad:          TXInputGamepad;
  end;
  {$EXTERNALSYM _XINPUT_STATE}
  XINPUT_STATE = _XINPUT_STATE;
  {$EXTERNALSYM XINPUT_STATE}
  TXInputState = XINPUT_STATE;

  PXInputVibration = ^TXInputVibration;
  _XINPUT_VIBRATION = record
    wLeftMotorSpeed:  Word;
    wRightMotorSpeed: Word;
  end;
  {$EXTERNALSYM _XINPUT_VIBRATION}
  XINPUT_VIBRATION = _XINPUT_VIBRATION;
  {$EXTERNALSYM XINPUT_VIBRATION}
  TXInputVibration = _XINPUT_VIBRATION;

  PXInputCapabilities = ^TXInputCapabilities;
  _XINPUT_CAPABILITIES = record
    _Type:            Byte;
    SubType:          Byte;
    Flags:            Word;
    Gamepad:          TXInputGamepad;
    Vibration:        TXInputVibration;
  end;
  {$EXTERNALSYM _XINPUT_CAPABILITIES}
  XINPUT_CAPABILITIES = _XINPUT_CAPABILITIES;
  {$EXTERNALSYM XINPUT_CAPABILITIES}
  TXInputCapabilities = _XINPUT_CAPABILITIES;

  PXInputBatteryInformation = ^TXInputBatteryInformation;
  _XINPUT_BATTERY_INFORMATION = record
    BatteryType: Byte;
    BatteryLevel: Byte;
  end;
  {$EXTERNALSYM _XINPUT_BATTERY_INFORMATION}
  XINPUT_BATTERY_INFORMATION = _XINPUT_BATTERY_INFORMATION;
  {$EXTERNALSYM XINPUT_BATTERY_INFORMATION}
  TXInputBatteryInformation = _XINPUT_BATTERY_INFORMATION;

  PXInputKeystroke = ^TXInputKeystroke;
  _XINPUT_KEYSTROKE = record
    VirtualKey: Word;
    Unicode: WideChar;
    Flags: Word;
    UserIndex: Byte;
    HidCode: Byte;
  end;
  {$EXTERNALSYM _XINPUT_KEYSTROKE}
  XINPUT_KEYSTROKE = _XINPUT_KEYSTROKE;
  {$EXTERNALSYM XINPUT_KEYSTROKE}
  TXInputKeystroke = _XINPUT_KEYSTROKE;


//
// XInput APIs
//

function XInputGetState(
    dwUserIndex: DWORD;      // [in] Index of the gamer associated with the device
    out pState: TXInputState // [out] Receives the current state
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputGetState}

function XInputSetState(
    dwUserIndex: DWORD;                 // [in] Index of the gamer associated with the device
    const pVibration: TXInputVibration  // [in, out] The vibration information to send to the controller
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputSetState}

function XInputGetCapabilities(
    dwUserIndex: DWORD;                     // [in] Index of the gamer associated with the device
    dwFlags: DWORD;                         // [in] Input flags that identify the device type
    out pCapabilities: TXInputCapabilities  // [out] Receives the capabilities
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputGetCapabilities}

procedure XInputEnable(
    enable: BOOL     // [in] Indicates whether xinput is enabled or disabled.
); stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputEnable}

function XInputGetDSoundAudioDeviceGuids(
    dwUserIndex: DWORD;           // [in] Index of the gamer associated with the device
    out pDSoundRenderGuid: TGUID; // [out] DSound device ID for render
    out pDSoundCaptureGuid: TGUID // [out] DSound device ID for capture
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputGetDSoundAudioDeviceGuids}

function XInputGetBatteryInformation(
    dwUserIndex: DWORD;          // [in]  Index of the gamer associated with the device
    devType: Byte;               // [in]  Which device on this user index
    out pBatteryInformation: TXInputBatteryInformation // [out] Contains the level and types of batteries
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputGetBatteryInformation}

function XInputGetKeystroke(
    dwUserIndex: DWORD;               // [in]  Index of the gamer associated with the device
    dwReserved: DWORD;                // [in]  Reserved for future use
    var pKeystroke: TXInputKeystroke  // [out] Pointer to an XINPUT_KEYSTROKE structure that receives an input event.
 ): DWORD; stdcall; external XINPUT_DLL;
{$EXTERNALSYM XInputGetKeystroke}


implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -