次の方法で共有


IDirectInputDevice8::EnumObjects メソッド

IDirectInputDevice8::EnumObjects メソッド

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

構文

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

パラメータ

  • lpCallback
    DirectInputDevice オブジェクトのコールバック関数のアドレス。Microsoft® DirectInput® は、この関数のプロトタイプを DIEnumDeviceObjectsCallback として提供している。
  • pvRef
    コールバック用のリファレンス データ (コンテキスト)。
  • dwFlags
    列挙するオブジェクトの型を指定するフラグ。次のフラグは、列挙対象を指定された型のオブジェクトに制限する。
    • DIDFT_ABSAXIS
      絶対軸。
    • DIDFT_ALIAS
      HID (Human Interface Device) 使用エイリアスによって識別されるコントロール。このフラグは、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 無効なパラメータが、戻ってくる関数に渡されたか、オブジェクトがその関数を呼び出せる状態になかった。この値は、標準のコンポーネント オブジェクト モデル (COM) 戻り値である E_INVALIDARG に等しい。
DIERR_NOTINITIALIZED このオブジェクトは初期化されていない。

注意

dwFlags パラメータに DIDFT_FFACTUATOR および DIDFT_FFEFFECTTRIGGER フラグを指定すると、列挙対象は、この 2 つのフラグで定義されているすべての基準を満たすオブジェクトに限定される。他のすべてのフラグの場合は、このカテゴリに指定したフラグで定義されている基準を満たすオブジェクトが列挙される。たとえば、(DIDFT_FFACTUATOR | DIDFT_FFEFFECTTRIGGER) を指定すると、列挙対象をフォース フィードバック トリガ オブジェクトに限定する。これに対して、(DIDFT_FFEFFECTRIGGER | DIDFT_TGLBUTTON | DIDFT_PSHBUTTON) を指定すると、エフェクト トリガとして利用できる任意のボタンが列挙される。

アプリケーションは、特定のキーボードのキーやインジケータ ランプが存在するかどうかの判断を、このメソッドに依存してはならない。これらのオブジェクトは、存在しないにもかかわらず列挙される可能性がある。利用可能なオブジェクトの基本セットはデバイス サブタイプから決定できるものの、メニュー キーなどの追加オブジェクトが利用できるかどうかを確実に判断できる方法はない。