Microsoft DirectX 8.0 (Visual Basic)

デバイス プロパティ

Microsoft® DirectInput® デバイスのプロパティには、データ バッファのサイズ、軸が返す値の範囲と細分性、軸データが相対か絶対か、およびジョイスティックの物理的位置と報告データ間の関係に影響するジョイスティック軸のデッド ゾーン飽和がある。特殊デバイスは、これ以外のプロパティを持つこともある。DirectInput によって定義されたプロパティのリストについては、「DirectInputDevice8.GetProperty」を参照すること。

1 つの例外 (フォース フィードバック デバイスのゲイン プロパティ) を除いて、プロパティは、デバイスが解放された状態にある場合に限り変更することができる。

DirectInputDevice8.SetProperty メソッドおよび DirectInputDevice8.GetProperty メソッドは、2 つのパラメータを取る。設定するプロパティを識別する文字列形式の GUID エイリアスと、Any 型のデータである。このデータは、実際には次のいずれか 1 つの型で渡される。

SetProperty の場合、プロパティ構造体のデータ メンバは、プログラマが設定する値である。GetProperty の場合は、現在の値がデータ メンバに返される。

実際のプロパティ データに加えて、これら 2 つの型には、lHow および lObj の 2 つのメンバが含まれる。

lHowlObj の値は連係して機能する。lHow は、プロパティを設定または取得するデバイス オブジェクトを識別するのに使用されるシステムを表し、lObj はデバイス オブジェクトを識別する。

lHow が DIPH_BYID である場合、デバイス オブジェクトは、lObj の一意な数値識別子で表される。この ID は、デバイス オブジェクトを列挙した後に、DirectInputDeviceObjectInstance.GetType により返される値から抽出できる

ほとんどのアプリケーションの場合、デバイス オブジェクトを識別する方法として比較的容易なのは、DirectInputDevice8.SetCommonDataFormat または DirectInputDevice8.SetDataFormat で確立されるデータ構造体内のオフセットを使用する方法である。この場合、lHow は DIPH_BYOFFSET であり、lObj はバイト単位のオフセットである。キーボード、マウス、および DIJOYSTATE または DIJOYSTATE2 型のデータを受け取ることができる任意のゲーム コントローラの場合、デバイス オブジェクトは事前定義された定数で識別できる。詳細については、「CONST_DIKEYFLAGS」、「CONST_DIMOUSEOFS」、および 「CONST_DIJOYSTICKOFS」を参照すること。

lHow メンバも DIPH_DEVICE を含むことができる。つまり、プロパティの所属先は単一のデバイス オブジェクトではなく、そのデバイス全体である。バッファ サイズはそのようなプロパティの一例である。lHow が DIPH_DEVICE であれば、lObj はゼロである。

SetProperty および GetProperty に渡されるプロパティを識別するために、以下の文字列が使用される。詳細については、「DirectInputDevice8.GetProperty」を参照すること。

デッド ゾーン、範囲、および飽和値の詳細については、「ジョイスティック軸データの解釈」を参照すること。

以下のコードは、デバイスのバッファ サイズを設定する例である。

' diDev は、データ形式を設定済みの DirectInputDevice である。
 
Dim diProp As DIPROPLONG
diProp.lHow = DIPH_DEVICE
diProp.lObj = 0
diProp.lData = 10
Call diDev.SetProperty("DIPROP_BUFFERSIZE", diProp)