Platform SDK: DirectX

DirectInputDevice.SetProperty

DirectInputDevice.SetProperty メソッドは、デバイスの動作を定義するプロパティを設定する。

object.SetProperty( _ 
  guid As String, _ 
  propertyInfo As Any)

パラメータ

object
DirectInputDevice オブジェクトを表すオブジェクト式。
guid
設定対象のプロパティの識別子。入力デバイスには次のプロパティ値が定義されており、文字列として渡すことができる。
DIPROP_AXISMODE
軸モードを設定する。設定値 (CONST_DINPUT 列挙の DIPROPAXISMODE_ABS または DIPROPAXISMODE_REL) は、割り当てられた DIPROPLONG 型の lData メンバに指定しなければならない。

この設定値はデバイス全体に適用されるので、割り当てられた DIPROPLONG 型の lHow メンバは DIPH_DEVICE でなければならない。

DIPROP_BUFFERSIZE
入力バッファ サイズを設定する。「注意」を参照すること。

この設定値はデバイス全体に適用されるので、割り当てられた DIPROPLONG 型の lHow メンバは DIPH_DEVICE でなければならない。

DIPROP_CALIBRATIONMODE
DirectInput が取得するデータが、キャリブレーション済みかキャリブレーション前かを、アプリケーションが指定できるようにする。デフォルトでは、DirectInput はキャリブレーション済みデータを取り出す。

デバイス全体に対してキャリブレーション モードを設定することは、それぞれの軸に対してキャリブレーション モードを設定することと同じ意味を持つ。

DIPROPLONG 型の lData メンバは次のいずれか 1 つの値を取ることができる。

DIPROPCALIBRATIONMODE_COOKED:DirectInput は、キャリブレーション情報の適用後のデータを返す。これがデフォルト モードである。

DIPROPCALIBRATIONMODE_RAW:DirectInput は、キャリブレーション前の未加工データを返す。このモードは通常、コントロール パネル型のアプリケーションでのみ使用される。

デバイスを未加工モードに設定すると、無効ゾーン、飽和値、および範囲の設定が無視される。

DIPROP_DEADZONE
0 〜 10,000 の範囲でジョイスティックの無効ゾーンの値を設定する。ここで、0 は無効ゾーンが存在しないこと、5,000 は無効ゾーンが軸を中心とした物理範囲の 50 パーセントにまで広がっていること、および 10,000 は軸の物理範囲の全体が無効であることをそれぞれ示す。軸が無効ゾーン内にあると、軸の範囲の中心にあるものと報告される。

この設定は、デバイス全体または 1 つの特定の軸のどちらかに適用できる。

DIPROP_RANGE
オブジェクトが報告可能な値の範囲を設定する。最小値および最大値は、割り当てられた DIPROPRANGE 型の lMin メンバと lMax メンバから取得される。

一部のデバイスでは、これは読み取り専用プロパティである。

範囲の大小を逆にはできない。lMax は、lMin より大きくなければならない。

DIPROP_SATURATION
0 〜 10,000 の範囲でジョイスティックの飽和ゾーンの値を設定する。飽和レベルとは、軸が極限位置にあると見なされる点のことである。たとえば、飽和レベルが 9,500 に設定されている場合、軸の中心 (無効ゾーン) から軸の端までの物理的距離の 95% の位置が軸の極限位置となる。

この設定は、デバイス全体または 1 つの特定の軸のどちらかに適用できる。

propertyInfo
単一の値を取るプロパティのデータを格納する DIPROPLONG 型。または、1 組の値を取るプロパティのデータを格納する DIPROPRANGE 型。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。

DIERR_INVALIDPARAM
DIERR_OBJECTNOTFOUND
DIERR_UNSUPPORTED

注意

バッファ サイズは、DirectInputDevice.GetDeviceData メソッドの前回と今回の呼び出しの間で、バッファがデータを失うことなく保持できるデータの量を決定する。この値にゼロを設定して、アプリケーションがデバイスからバッファリング データを読み込まないように指定することもできる。DIPROPLONG 型の lData メンバ中のバッファ サイズが大きすぎてデバイスがサポートできない場合は、サポート可能な最大バッファ サイズが設定される。要求したバッファ サイズが設定されたかどうかを確認するには、バッファ サイズ プロパティを取得して、設定しようとした値とその結果を比較する。

参照

DirectInputDevice.GetProperty