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 を返す。
失敗した場合は、次のいずれかのエラー値を返す。
注意
以下の 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