XInput のバージョン

XInput は、Xbox と Windows で使用するために出荷されたクロスプラットフォーム API です。 Xbox では、XInput は、メイン ゲーム実行可能ファイルにコンパイルされるスタティック ライブラリとして出荷されます。 Windows では、XInput はオペレーティング システムのシステム フォルダーにインストールされる DLL として提供されます。

現在、XInput DLL の現行バージョンは 3 つあります。 使用する XInput の機能と、サポートする Windows のバージョンに基づいて、適切なバージョンの XInput を選択します。

  • XInput 1.4: XInput 1.4 は Windows 10 の一部として付属しています。 このバージョンは、UWP アプリのビルドに使用します。
  • XInput 9.1.0: XInput 9.1.0 は、Windows Vista、Windows 7、および Windows 8 の一部として付属しています。 お使いのデスクトップ アプリがこれらのバージョンの Windows で実行することを目的としており、基本的な XInput 機能を使用している場合は、このバージョンを使用します。
  • XInput 1.3: XInput 1.3 は、Windows Vista、Windows 7、および Windows 8 をサポートする DirectX SDK の再頒布可能コンポーネントとして付属しています。 お使いのデスクトップ アプリがこれらのバージョンの Windows で実行することを目的としており、XInput 9.1.0 でサポートされていない機能が必要な場合は、このバージョンを使用します。

XInput 1.4

XInput 1.4 は現在、Windows 8 のシステム コンポーネントの XINPUT1_4.DLL として付属しています。 "受信トレイ" を使用でき、アプリケーションでの再配布は必要ありません。 Windows ソフトウェア開発キット (Windows SDK) には、XINPUT1_4.DLL に対して静的にリンクするためのヘッダーとインポート ライブラリが含まれています。 Windows 8 SDK をダウンロードするには、デスクトップ アプリを開発するためのダウンロードに関する記事を参照してください。

XInput 1.4 には、他のバージョンの XInput に勝さる次ような利点があります。

  • これは、C++/DirectX Windows ストア アプリで使用できる唯一のバージョンです。
  • 新しい XInputGetAudioDeviceIds 関数は、コントローラーに接続されているヘッドセットの XAudio2 マスタリング音声またはオーディオ デバイスを開くために使用できるオーディオ デバイス ID 文字列を提供します。 XInputGetDSoundAudioDeviceGuids 関数は、このバージョンでは使用できません。
  • XINPUT_CAPS_WIRELESS フラグ、XINPUT_CAPS_FFB_SUPPORTED フラグ、XINPUT_CAPS_PMD_SUPPORTED フラグ、XINPUT_CAPS_NO_NAVIGATION フラグなど、デバイス機能のレポート機能が強化され、XINPUT_CAPS_VOICE_SUPPORTEDのより正確なレポートが提供されます。 これらのフラグは、XINPUT_CAPABILITIES 構造体の Flags メンバーで結合されます。 XInputGetCapabilities 関数は、XINPUT_CAPABILITIES を返します。

XInput 9.1.0

XInput 1.4 と同様に、XInput 9.1.0 は現在、Windows 10、Windows 8.x、Windows 7、Windows Vista のシステム コンポーネントとして、XINPUT9_1_0.DLL として付属しています。 これは、主に既存のアプリケーションとの下位互換性のために維持されます。 関数セットが縮小されているため、可能であれば XInput 1.4 を使用することをお勧めします。 ただし、ダウンレベル バージョンの Windows で実行する必要があるが、XInput 1.4 または XInput 1.3 によって提供される追加のオーディオ機能は必要ないアプリケーションに使用すると便利です。

Windows SDK には、XINPUT9_1_0.DLL に対して静的にリンクするためのヘッダーとインポート ライブラリが含まれています。

XInput 9.1.0 には、他のバージョンの XInput と比べて次のような欠点があります。

  • 下位互換性の理由から、このバージョンの XInput の XInputGetCapabilities は固定機能情報を返します。 接続されているコントローラ デバイスに関係なく、XInput 9.1.0 の XInputGetCapabilities は常に GAMEPAD のデバイス サブタイプを報告します。 ワイヤレス デバイスが接続されている場合でも、XINPUT_CAPS_WIRELESS 機能ビットは返されません。
  • 特定のユーザー ID のヘッドセットを特定することはできません。 XInputGetAudioDeviceIds 関数は使用できません。XInputGetDSoundAudioDeviceGuids 関数は Windows 8.x または Windows 10 では結果を返しません。
  • XInputEnableXInputGetBatteryInformation、および XInputGetKeystroke 関数は使用できません。

XInput 1.3

以前のバージョンの XInput は、DirectX SDK で再頒布可能 DLL として提供されていました。 DirectX SDK の 2006 年 4 月リリースに付属する XInput の最初の再頒布可能バージョンである XInput 1.1。 DirectX SDK に出荷する最後のバージョンは XInput 1.3 で、レガシ DirectX SDK の 2010 年 6 月リリースで入手できます。 DirectX SDK は、Microsoft ダウンロードでは使用できなくなりました

ダウンレベル バージョンの Windows をサポートし、XInput 9.1.0 で提供されていない機能を必要とするアプリケーションには XInput 1.3 を使用できます (つまり、正しいサブタイプ レポート、オーディオ サポート、明示的なバッテリ レポートのサポートなど)。