DIDEVICEOBJECTINSTANCE
DIDEVICEOBJECTINSTANCE 構造体は、デバイス オブジェクトのインスタンスに関する情報を格納する。この構造体は、IDirectInputDevice7::EnumObjects メソッドで使用され、DIEnumDeviceObjectsCallback コールバック関数に対して、軸またはボタンなど、デバイスに関連付けられた特定のオブジェクトについての情報を提供する。また、デバイス オブジェクトの情報を取得するために、IDirectInputDevice7::GetObjectInfo メソッドでも使用される。
typedef struct DIDEVICEOBJECTINSTANCE {
DWORD dwSize;
GUID guidType;
DWORD dwOfs;
DWORD dwType;
DWORD dwFlags;
TCHAR tszName[MAX_PATH];
DWORD dwFFMaxForce;
DWORD dwFFForceResolution;
WORD wCollectionNumber;
WORD wDesignatorIndex;
WORD wUsagePage;
WORD wUsage;
DWORD dwDimension;
WORD wExponent;
WORD wReportId;
} DIDEVICEOBJECTINSTANCE, *LPDIDEVICEOBJECTINSTANCE;
typedef const DIDEVICEOBJECTINSTANCE *LPCDIDEVICEOBJECTINSTANCE;
メンバ
- dwSize
- この構造体のバイト単位のサイズ。列挙の間に、アプリケーションはこの値を調べ、構造体のメンバがいくつ有効であるかを確認できる。構造体が IDirectInputDevice7::GetObjectInfo メソッドに渡されるとき、このメンバを sizeof(DIDEVICEOBJECTINSTANCE) に初期化しなければならない。
- guidType
- オブジェクト タイプを示す一意な識別子。このメンバはオプションである。次のいずれか 1 つの値を取ることができる。
- GUID_XAxis
- 水平軸。たとえば、マウスの左右の動きを表すことができる。
- GUID_YAxis
- 垂直軸。たとえば、マウスの前後の動きを表すことができる。
- GUID_ZAxis
- z 軸。たとえば、マウス上のホイールの回転、またはジョイスティックのスロットル制御の移動を表すことができる。
- GUID_RxAxis
- x 軸を中心とする回転。
- GUID_RyAxis
- y 軸を中心とする回転。
- GUID_RzAxis
- z 軸を中心とする回転 (方向舵のコントロールでよく使われる)。
- GUID_Slider
- スライド軸。
- GUID_Button
- マウスのボタン。
- GUID_Key
- キーボード上のキー。
- GUID_POV
- 視点インジケータ
- GUID_Unknown
- 確定できない。
将来、これ以外のオブジェクト タイプも定義される可能性がある。
- dwOfs
- データ形式内のオフセットで、このオブジェクトに報告されるデータの位置。この値は、メソッド呼び出しにおけるオブジェクトと DIPH_BYOFFSET フラグを受け取る構造体の中のオブジェクトを識別するために使用される。
- dwType
- オブジェクトを表すデバイス タイプ。オブジェクト タイプ (軸、ボタンなど) を表す DIDFT_* フラグの組み合わせであり、中央の 16 ビットには、オブジェクト インスタンス番号が格納される。オブジェクト インスタンス番号を抽出するには、DIDFT_GETINSTANCE マクロを使用する。DIDFT_* フラグについては、IDirectInputDevice7::EnumObjects を参照すること。
- dwFlags
- データ形式のほかの属性を表すフラグ。この値は、次のいずれか 1 つである。
- DIDOI_ASPECTACCEL
- オブジェクトは加速度情報を報告する。
- DIDOI_ASPECTFORCE
- オブジェクトはフォース情報を報告する。
- DIDOI_ASPECTMASK
- アスペクト情報を報告するためのビット。1 つのオブジェクトは最大 1 つのアスペクトしか表すことができない。
- DIDOI_ASPECTPOSITION
- オブジェクトは位置情報を報告する。
- DIDOI_ASPECTVELOCITY
- オブジェクトは速度情報を報告する。
- DIDOI_FFACTUATOR
- オブジェクトは、フォース フィードバック エフェクトを自身に適用させることができる。
- DIDOI_FFEFFECTTRIGGER
- オブジェクトは、フォース フィードバック エフェクトの再生をトリガする。
- DIDOI_GUIDISUSAGE
- DIOBJECTDATAFORMAT 構造体の pguid メンバは、実際には目的の使用ページおよび使用状況を組み合わせ、適切にキャストされた DIMAKEUSAGEDWORD である。
- DIDOI_POLLED
- IDirectInputDevice7::Poll メソッドが呼び出されるまで、オブジェクトはデータを返さない。
- tszName[MAX_PATH]
- オブジェクトの名前。たとえば、"X-Axis" または "Right Shift" など。
- dwFFMaxForce
- このオブジェクトに関連付けられたアクチュエータが作り出せる最大フォースのマグニチュード。フォースは、ニュートン単位で表現され、デバイスを通常に操作している間の手の位置との関連で測定される。
- dwFFForceResolution
- このオブジェクトに関連付けられたアクチュエータのフォース分解能。戻り値は、フォース フィードバック システムが 0 (フォースなし) から最大フォースの範囲で表現できるフォースの段階数または下位区分の数を表す。
- wCollectionNumber
- オブジェクトが属する HID リンク コレクション。
- wDesignatorIndex
- HID 物理記述子の指定を参照するインデックス。この数値は、デバイス オブジェクトについての追加情報を含む HID 解釈ライブラリ (Hidpi.h) の関数に渡される。
- wUsagePage
- オブジェクトに関連する HID 使用ページ (判明した場合)。ヒューマン インターフェイス デバイスは常に使用ページを報告する。非 HID デバイスはオプションで使用ページを報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。
- wUsage
- オブジェクトに関連する HID 使用状況 (判明した場合)。ヒューマン インターフェイス デバイスは常に使用を報告する。非 HID デバイスはオプションで使用状況を報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。
- dwDimension
- オブジェクトの値を報告する単位の HID コード (判明している場合)。不明な場合はゼロとなる。
- wExponent
- 単位に付ける指数 (判明している場合)。次元単位は常に整数であるので、整数以外のタイプに単位を変換するには指数が必要となる。
- wReportId
- 予約済み。
注意
アプリケーションは wUsagePage および wUsage メンバを使用して、オブジェクトの設計目的についての追加情報を得ることができる。たとえば、wUsagePage の値が 0x02 (乗物のコントロール) で、wUsage の値が 0xB9 (昇降舵トリム) の場合、オブジェクトは、操縦桿の昇降舵トリム コントロールとして設計されている。フライト シミュレータ アプリケーションはこの情報を使用して、デバイス上のオブジェクトに対して、より適切なデフォルト動作を提供することができる。HID 使用コードは USB 標準委員会で定められている。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dinput.h で宣言。