Microsoft DirectX 8.0 (C++)

前バージョンの DirectInput 用の設計

DirectInput8Create、IDirectInput8::Initialize、IDirectInputDevice8::Initialize、および IDirectInputEffect::Initialize メソッドでは、Microsoft® DirectInput® のバージョン番号を渡す必要がある。このパラメータは、DirectInput サブシステムがどのバージョンの Microsoft DirectX® をエミュレートするかを指定する。

最新バージョンの DirectInput 用に設計されたアプリケーションは、Dinput.h で定義されている DIRECTINPUT_VERSION 値を渡す必要がある。

以前のバージョンで実行するように設計されたアプリケーションでは、設計対象の DirectInput のバージョンに対応した値、すなわち高次バイトにメイン バージョン番号をつけた値を渡す必要がある。たとえば、DirectInput 3.0 上で動作するように設計されたアプリケーションは、0x0300 を渡す必要がある。

Dinput.h ヘッダー ファイルをインクルードする前に、DIRECTINPUT_VERSION を 0x0300 と定義すると、このヘッダー ファイルは DirectInput 3.0 と互換性を持つ構造体定義を生成する。

Dinput.h ヘッダー ファイルをインクルードする前に DIRECTINPUT_VERSION を定義しないと、Dinput.h ヘッダー ファイルは DirectInput の現行バージョンと互換性のある構造体定義を生成する。しかし、DirectX 3 と互換性のある構造体も、その名前に "_DX3" を付ければ使用することができる。たとえば、DirectX 3 と互換性のある DIDEVCAPS 構造体は DIDEVCAPS_DX3 と名付けられることになる。

また、DirectInput インターフェイスと DirectInputDevice インターフェイスの適切なバージョンを使用する必要がある。DirectX 7.0 より前のバージョンの DirectX では、IDirectInput と、IDirectInputDevice または IDirectInputDevice2 のどちらかを使用する必要がある (後者は DirectX 5.0 以降のバージョンで利用可能)。