Microsoft DirectX 8.0 (C++)

IDirectInputDevice8::GetProperty

入力デバイスに関する情報を取得する。

HRESULT GetProperty(
  REFGUID rguidProp,    
  LPDIPROPHEADER pdiph  
);

パラメータ

rguidProp
C++ の場合、取得するプロパティを識別する GUID に対する参照値。C の場合、この GUID のアドレス。この識別子として、事前定義された値の 1 つ、またはプロパティを識別する GUID へのポインタを使用できる。入力デバイスに対しては、次のプロパティが事前定義されている。
DIPROP_APPDATA
ゲーム内のアクションに関連するアプリケーション定義の値を DIPROPPOINTER として取得する。
DIPROP_AUTOCENTER
デバイス オブジェクトが自動センタリングを行うかどうかを指定する。返される値は DIPROPAUTOCENTER_OFF または DIPROPAUTOCENTER_ON である。詳細については、「IDirectInputDevice8::SetProperty」を参照すること。
DIPROP_AXISMODE
軸モードを取得する。取得される値は DIPROPAXISMODE_ABS または DIPROPAXISMODE_REL である。
DIPROP_BUFFERSIZE
入力バッファ サイズを取得する。

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

DIPROP_CALIBRATIONMODE
アプリケーションが使用するのではなく、デバイス ドライバが使用する。
DIPROP_CPOINTS
未加工の到着データを調整するために使用するキャリブレーション ポイントを DIPROPCPOINTS 構造体として取得する。
DIPROP_DEADZONE
0 〜 10,000 の範囲でジョイスティックのデッド ゾーンの値を取得する。ここで、0 はデッド ゾーンが存在しないこと、5,000 はデッド ゾーンが軸を中心とした物理範囲の 50 パーセントにまで広がっていること、および 10,000 は軸の物理範囲の全体が無効であることをそれぞれ示す。軸がデッド ゾーン内にあると、軸の範囲の中心にあるものと報告される。
DIPROP_FFGAIN
デバイスのゲインを取得する。詳細については、「IDirectInputDevice8::SetProperty」を参照すること。
DIPROP_FFLOAD
デバイスのメモリ ロードを取得する。この設定値は、個別のオブジェクトではなくデバイス全体に適用されるので、割り当てられた DIPROPDWORD 構造体の dwHow メンバは、DIPH_DEVICE でなければならない。取得される値は、0〜100 の範囲にある。この値は、使用中のデバイス メモリのパーセント数を示す。デバイスは排他モードで取得しなければならない。排他モードでない場合、このメソッドは失敗し、戻り値 DIERR_NOTEXCLUSIVEACQUIRED が返される。
DIPROP_GETPORTDISPLAYNAME
このデバイスが接続されているポートの、人間が読める形式の表示名を取得する。アプリケーションは通常は使用しない。登録名が 1 つも返されない場合、このメソッドは S_FALSE を返す。
DIPROP_GRANULARITY
入力の細分度を取得する。細分度は、オブジェクトが移動距離を報告する際の最小量を表す。多くの軸オブジェクトの細分度は 1 であり、あらゆる値を取ることができる。軸によっては、より大きな細分度を持つものもある。たとえば、マウスのホイール軸の細分度は 20 にすることもできる。報告される位置変化はすべて、20 の倍数となる。すなわち、ユーザーがホイールをゆっくり回転させると、デバイスは位置を 0、20、40 などと報告する。これは読み取り専用プロパティである。
DIPROP_GUIDANDPATH
デバイスのクラス GUID とデバイス インターフェイス (パス) を取得する。詳細設定の可能なアプリケーションは、このプロパティを使うことで、Microsoft® DirectInput® でサポートされていない HID に対して操作を実行できる。詳細については、DIPROPGUIDANDPATH 構造体のリファレンスを参照すること。
DIPROP_INSTANCENAME
デバイスのインスタンスの登録名を取得する。詳細については、「IDirectInputDevice8::SetProperty」を参照すること。
DIPROP_JOYSTICKID
ジョイスティックのインスタンス番号を取得する。このプロパティはマウスやキーボードには実装されない。
DIPROP_KEYNAME
キーボード キーのローカライズされたキー名を DIPROPSTRING として取得する。
DIPROP_LOGICALRANGE
HID の軸から返される未加工データの範囲を取得する。デバイスはマイナス値を返すことがある。
DIPROP_PHYSICALRANGE
HID のメーカーが指定する、軸データの範囲を取得する。マイナス値が返されることもある。通常、DirectInput® は 0 〜 0xFFFF の値を返すが、DIPROP_RANGE を使って、メーカー指定の範囲に合わせることができる。
DIPROP_PRODUCTNAME
デバイスの製品の登録名を取得する。詳細については、「IDirectInputDevice8::SetProperty」を参照すること。
DIPROP_RANGE
オブジェクトが報告できる値の範囲を取得する。一部のデバイスでは、これは読み取り専用プロパティである。
DIPROP_SATURATION
0 〜 10,000 の範囲でジョイスティックの飽和ゾーンの値を取得する。飽和レベルとは、軸が極限位置にあるとみなされるポイントのことである。たとえば、飽和レベルが 9,500 に設定されている場合、軸の中心 (デッド ゾーン) から軸の端までの物理的距離の 95% の位置が軸の極限位置となる。
DIPROP_SCANCODE
キーボード キーのスキャン コードを DIPROPDWORD として取得する。
DIPROP_USERNAME
デバイスに現在割り当てられているユーザーのユーザー名を DIPROPSTRING として取得する。ユーザー名は IDirectInputDevice8::SetActionMap を呼び出して設定される。ユーザー名が設定されていない場合、このメソッドは S_FALSE を返す。
pdiph
メンバとして DIPROPHEADER 構造体を持つ大型プロパティ依存構造体の、DIPROPHEADER 部分のアドレス。プロパティには次の構造体が使用される。
DIPROPDWORD
単一の数値で表されるプロパティに使用される。
DIPROPGUIDANDPATH
DIPROP_GUIDANDPATH に使用される。
DIPROPRANGE
数値のペアで表されるプロパティに使用される。現在のところ、これに該当するプロパティは DIPROP_RANGE のみである。
DIPROPSTRING
文字列プロパティに使用される。

戻り値

成功した場合は、DI_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DIERR_INVALIDPARAM
DIERR_NOTEXCLUSIVEACQUIRED
DIERR_NOTINITIALIZED
DIERR_OBJECTNOTFOUND
DIERR_UNSUPPORTED

注意

以下の C コードの例は、DIPROP_BUFFERSIZE プロパティ値の取得方法を説明する。

DIPROPDWORD dipdw;  // DIPROPDWORD は DIPROPHEADER 構造体を格納する。 
HRESULT hr; 
dipdw.diph.dwSize       = sizeof(DIPROPDWORD); 
dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER); 
dipdw.diph.dwObj        = 0; // デバイス プロパティ
dipdw.diph.dwHow        = DIPH_DEVICE; 
 
hr = IDirectInputDevice8_GetProperty(pdid, DIPROP_BUFFERSIZE, &dipdw.diph); 
if (SUCCEEDED(hr)) { 
    // dipdw.dwData メンバはバッファ サイズを格納する。 
} 

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : dinput.h で宣言。

参照

IDirectInputDevice8::SetProperty