次の方法で共有


DIDEVICEOBJECTINSTANCE

デバイス オブジェクトのインスタンスを表します。この構造体は、軸やボタンなど、デバイスに関連付けられた特定のオブジェクトに関する情報を DIEnumDeviceObjectsCallback コールバック関数に提供するために、IDirectInputDevice8::EnumObjects メソッドで使用されます。また、デバイス オブジェクトに関する情報を取得するために、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;

メンバ

  • 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 インターフェイス メソッドが呼び出されるまでデータを返しません。
  • tszName
    "X-Axis" や "Right Shift" など、オブジェクトの名前です。
  • dwFFMaxForce
    このオブジェクトに関連付けられたアクチュエータによって作成できる最大フォースの大きさです。フォースはニュートン単位で表され、デバイスの通常の操作時における手の位置を基準にして測定されます。
  • dwFFForceResolution
    このオブジェクトに関連付けられたアクチュエータのフォース分解能です。返される値は、フォース フィードバック システムによって 0 (フォースなし) から最大フォースの範囲で表すことができる、最大フォースの段階つまり区切りの数を表します。
  • wCollectionNumber
    オブジェクトが属するヒューマン インターフェイス デバイス (HID) のリンク コレクションです。
  • wDesignatorIndex
    HID 物理ディスクリプターの指定子を参照するインデックスです。この数値を HID 解釈ライブラリ (Hidpi.h) の関数に渡して、デバイス オブジェクトに関する詳細情報を取得することができます。
  • wUsagePage
    オブジェクトに関連するヒューマン インターフェイス デバイス (HID) 使用方法ページです (既知の場合)。HID は、常に使用方法ページを報告します。非 HID デバイスは、オプションで使用方法ページを報告することができます。報告しない場合、このメンバーの値は 0 です。
  • wUsage
    オブジェクトに関連する HID 使用方法です (既知の場合)。HID は、常に使用方法を報告します。非 HID は、オプションで使用方法を報告することができます。報告しない場合、このメンバーの値は 0 です。
  • dwDimension
    オブジェクトの値が報告される次元単位のヒューマン インターフェイス デバイス (HID) コードです (既知の場合)。不明な場合は 0 です。
  • wExponent
    次元に関連付ける指数です (既知の場合)。次元単位は常に整数なので、整数以外の型に変換するためには指数が必要になることがあります。
  • wReportId
    予約済みです。

解説 

    デバイスにデータ フォーマットが設定されているかどうかに関係なく、dwOfs の値は、デバイスから返される未処理データ内のオフセットです。

アプリケーションは、wUsagePage および wUsage メンバーを使用して、どのような使用目的でオブジェクトが設計されたかについての詳細情報を取得することができます。たとえば、wUsagePage の値が 0x02 (乗り物のコントロール) で、 wUsage の値が 0xB9 (エレベーター トリム) の場合、オブジェクトは、フライト スティックのエレベーター トリム コントロールとして設計されています。フライト シミュレーター アプリケーションでは、この情報を使用して、デバイス上のオブジェクトに対して、より適切な既定の動作を実現することができます。HID 使用方法コードは、USB 標準化委員会によって決定されます。