次の方法で共有


IDirectInputDevice8::EnumObjects

デバイス上で使用可能な入力オブジェクトと出力オブジェクトを列挙します。

HRESULT 
EnumObjects(
  LPDIENUMDEVICEOBJECTSCALLBACK lpCallback,
  LPVOID pvRef,
  DWORD dwFlags
);

パラメータ

  • lpCallback
    DirectInputDevice オブジェクトを受け取るコールバック関数のアドレス。DirectInput は、この関数のプロトタイプを DIEnumDeviceObjectsCallback として提供しています。
  • pvRef
    コールバックのリファレンス データ (コンテキスト)。
  • dwFlags
    列挙するオブジェクトの種類を指定するフラグ。次のそれぞれの値によって、列挙の対象がそれぞれ示されている種類のオブジェクトに制限されます。
    • DIDFT_ABSAXIS
      絶対軸。
    • DIDFT_ALIAS
      ヒューマン インターフェイス デバイス (HID) 使用エイリアスによって示されるコントロール。このフラグは、HID 準拠の USB デバイスのみに適用されます。
    • DIDFT_ALL
      すべてのオブジェクト。
    • DIDFT_AXIS
      絶対軸または相対軸。
    • DIDFT_BUTTON
      プッシュ ボタンまたはトグル ボタン。
    • DIDFT_COLLECTION
      HID リンク コレクション。HID リンク コレクションは独自のデータを生成しません。
    • DIDFT_ENUMCOLLECTION(n)
      HID リンク コレクション番号 n に属するオブジェクト。
    • DIDFT_FFACTUATOR
      フォース フィードバック アクチュエーターを含むオブジェクト。つまり、このオブジェクトにはフォースを適用できます。
    • DIDFT_FFEFFECTTRIGGER
      フォース フィードバック エフェクトのトリガーに使用できるオブジェクト。
    • DIDFT_NOCOLLECTION
      HID リンク コレクションに属さないオブジェクト。つまり、そのオブジェクトに対する DIDEVICEOBJECTINSTANCE 構造体の wCollectionNumber メンバーは 0 です。
    • DIDFT_NODATA
      データを生成しないオブジェクト。
    • DIDFT_OUTPUT
      出力をサポートするオブジェクト。詳しくは、IDirectInputDevice8::SendDeviceData の「解説」を参照してください。
    • DIDFT_POV
      視点コントローラー。
    • DIDFT_PSHBUTTON
      プッシュ ボタン。プッシュ ボタンは、ユーザーが押したときはダウン、ユーザーが放したときはアップとして報告されます。
    • DIDFT_RELAXIS
      相対軸。
    • DIDFT_TGLBUTTON
      トグル ボタン。トグル ボタンは、ユーザーが押したときにダウンとして報告され、ユーザーが次にそのボタンを押すまでその状態を保ちます。
    • DIDFT_VENDORDEFINED
      製造元によって定義された型のオブジェクト。

戻り値

メソッドが正常に実行された場合、戻り値は DI_OK です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。

DIERR_INVALIDPARAM DIERR_NOTINITIALIZED

解説 

dwFlags パラメーター内の DIDFT_FFACTUATOR フラグと DIDFT_FFEFFECTTRIGGER フラグは、 パラメーターに含まれるフラグによって定義された条件をすべて満たすオブジェクトのみに列挙の対象を制限します。その他すべてのフラグの場合は、このカテゴリに含まれるすべてのフラグによって定義された条件を満たす場合に、オブジェクトが列挙されます。たとえば、(DIDFT_FFACTUATOR | DIDFT_FFEFFECTTRIGGER) はフォース フィードバック トリガー オブジェクトのみに列挙の対象を制限し、(DIDFT_FFEFFECTTRIGGER | DIDFT_TGLBUTTON | DIDFT_PSHBUTTON) はエフェクト トリガーとして使用できる種類のボタンに列挙の対象を制限します。

特定のキーボード キーやインジケーター ライトが存在するかどうか判別するために、アプリケーションでこの方式を使用しないようにしてください。これは、これらのオブジェクトが存在していなくても列挙される可能性があるからです。使用可能なオブジェクトの基本的なセットはデバイス サブタイプから判別できますが、メニュー キーなどの追加オブジェクトが使用可能かどうか確実に判別する方法はありません。

要件

ヘッダー: Dinput.h 宣言