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