DIDEVICEOBJECTINSTANCE 構造体
DIDEVICEOBJECTINSTANCE 構造体
デバイス オブジェクトのインスタンスに関する情報を格納する。この構造体は、IDirectInputDevice8::EnumObjects メソッドで使い、軸またはボタンなど、デバイスに関連付けられた特定のオブジェクトに関する情報を DIEnumDeviceObjectsCallback コールバック関数に提供する。また、デバイス オブジェクトの情報を取得するために、IDirectInputDevice8::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
この構造体のサイズ (バイト単位)。列挙の間に、アプリケーションはこの値を調べ、構造体のメンバがいくつ有効であるかを確認できる。構造体が IDirectInputDevice8::GetObjectInfo メソッドに渡されるとき、このメンバを sizeof(DIDEVICEOBJECTINSTANCE) に初期化しなければならない。 - guidType
オブジェクトの種類を示す一意の識別子。このメンバは省略可能である。次のいずれかの値を指定できる。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
デバイスのネイティブ データ形式でのオフセット。ネイティブ データ形式は、未処理のデバイス データに対応する。dwOfs メンバは、DIJOFS_BUTTON0 など、このオブジェクトに対するデバイス定数に対応しない。 - dwType
オブジェクトを記述するデバイス タイプ。オブジェクトの種類 (軸、ボタンなど) を表す DIDFT_* フラグの組み合わせであり、中央の 16 ビットには、オブジェクトのインスタンス番号が格納される。オブジェクトのインスタンス番号を抽出するには、DIDFT_GETINSTANCE マクロを使う。DIDFT_* フラグの詳細については、「IDirectInputDevice8::EnumObjects」を参照すること。 - dwFlags
データ形式の他の属性を表すフラグ。次のいずれかの値を指定できる。DIDOI_ASPECTACCEL
オブジェクトは加速度情報を報告する。DIDOI_ASPECTFORCE
オブジェクトはフォース情報を報告する。DIDOI_ASPECTMASK
アスペクト情報を報告するためのビット。1 つのオブジェクトは最大 1 つのアスペクトしか表せない。DIDOI_ASPECTPOSITION
オブジェクトは位置情報を報告する。DIDOI_ASPECTVELOCITY
オブジェクトは速度情報を報告する。DIDOI_FFACTUATOR
オブジェクトは、フォース フィードバック エフェクトを自身に適用させることができる。DIDOI_FFEFFECTTRIGGER
オブジェクトは、フォース フィードバック エフェクトの再生をトリガする。DIDOI_GUIDISUSAGE
DIOBJECTDATAFORMAT 構造体の pguid メンバには、必要な使用ページと使用状況が、パックされた DWORD 形式で格納される。「DIMAKEUSAGEDWORD」を参照すること。DIDOI_POLLED
オブジェクトは、IDirectInputDevice8::Poll メソッドが呼び出されるまでデータを返さない。
- tszName
オブジェクトの名前。たとえば、"X-Axis"、"Right Shift" など。 - dwFFMaxForce
このオブジェクトに関連付けられたアクチュエータが作り出せる最大フォースのマグニチュード。フォースは、ニュートン単位で表現され、デバイスを通常に操作している間の手の位置との関連で測定される。 - dwFFForceResolution
このオブジェクトに関連付けられたアクチュエータのフォース分解能。戻り値は、フォース フィードバック システムが 0 (フォースなし) から最大フォースの範囲で表現できるフォースの段階数または下位区分の数を表す。 - wCollectionNumber
オブジェクトが属する HID (Human Interface Device) のリンク コレクション。 - wDesignatorIndex
HID 物理記述子の指定を参照するインデックス。この数値は、デバイス オブジェクトについての追加情報を含む HID 解釈ライブラリ (Hidpi.h) の関数に渡される。 - wUsagePage
オブジェクトに関連する HID (Human Interface Device) 使用ページ (判明した場合)。HID は常に使用ページを報告する。非 HID デバイスはオプションで使用ページを報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。 - wUsage
オブジェクトに関連する HID 使用状況 (判明した場合)。HID は常に使用状況を報告する。非 HID はオプションで使用状況を報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。 - dwDimension
オブジェクトの値を報告する次元単位の HID (Human Interface Device) コード (判明している場合)。不明な場合はゼロになる。 - wExponent
単位に付ける指数 (判明している場合)。次元単位は常に整数であるので、整数以外の型に単位を変換するには指数が必要になる。 - wReportId
予約済み。
注意
警告 dwOfs の値は、デバイスに対してデータ形式が設定されたかどうかにかかわらず、デバイスが返す未加工データ内のオフセットである。
アプリケーションは wUsagePage および wUsage メンバを使って、オブジェクトの設計目的についての追加情報を取得できる。たとえば、wUsagePage の値が 0x02 (乗物のコントロール) で、wUsage の値が 0xB9 (昇降舵トリム) の場合、オブジェクトは、操縦桿の昇降舵トリム コントロールとして設計されている。フライト シミュレータ アプリケーションはこの情報を使って、デバイス上のオブジェクトに対して、より適切なデフォルト動作を提供できる。HID 使用コードは USB 標準委員会で定められている。
構造体の情報
ヘッダー | dinput.h |
最低限のオペレーティング システム | Windows 98 |