Platform SDK: DirectX

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 で宣言。