Share via


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