次の方法で共有


DIJOYTYPEINFO 構造体 (dinputd.h)

DIJOYTYPEINFO 構造体には、ジョイスティックの種類に関する情報が含まれています。

構文

typedef struct DIJOYTYPEINFO {
  DWORD            dwSize;
  JOYREGHWSETTINGS hws;
  CLSID            clsidConfig;
  WCHAR            wszDisplayName[MAX_JOYSTRING];
  WCHAR            wszCallout[MAX_JOYSTICKOEMVXDNAME];
  WCHAR            wszHardwareId[MAX_JOYSTRING];
  DWORD            dwFlags1;
  DWORD            dwFlags2;
  WCHAR            wszMapFile[MAX_JOYSTRING];
} DIJOYTYPEINFO, *LPDIJOYTYPEINFO;

メンバー

dwSize

構造体のサイズをバイト単位で指定します。 構造体を使用する前に、このメンバーを初期化する必要があります。

hws

ジョイスティックのハードウェア設定。

clsidConfig

ジョイスティック・タイプ構成オブジェクトの CLSID を指定します。 この CLSID を CoCreateInstance に渡して、構成オブジェクトを作成します。 型にカスタム構成がない場合、このフィールドは 0 です。

wszDisplayName[MAX_JOYSTRING]

ジョイスティックの種類の表示名。 表示名は、ジョイスティックの種類の名前をエンド ユーザーに表示するために使用する名前です。

wszCallout[MAX_JOYSTICKOEMVXDNAME]

この種類のデバイスのポーリングを処理するデバイス。 グローバル ポーリングコールアウトを使用する場合、これは null 文字列です。

wszHardwareId[MAX_JOYSTRING]

ジョイスティックの種類のハードウェア ID。 ハードウェア ID は、Windows 2000 および Windows 98 (DirectX 7.0 のみ) のプラグ アンド プレイによってジョイスティックのドライバーを検索するために使用されます。

dwFlags1

ジョイスティックの種類のフラグ。 このメンバーは、次のフラグの組み合わせに設定できます。

JOYTYPE_ZEROGAMEENUMOEMDATA

Zero GameEnum の OEM データ フィールド。

JOYTYPE_NOAUTODETECTGAMEPORT

デバイスは自動検出ゲームポートをサポートしていません。

JOYTYPE_NOHIDDIRECT

このデバイスには HID を直接使用しないでください。 (Windows 98 のみ)。

JOYTYPE_DEFAULTPROPSHEET

CPL はカスタム プロパティ シートをオーバーライドします。

dwFlags2

デバイス フィルター処理とデバイスの種類/サブタイプオーバーライド フラグの組み合わせ。 デバイス フィルター フラグは、 dwFlags2 の高い WORD に配置する必要があります。 デバイスの種類とサブタイプは、それぞれメンバーの Low と high の WORD に配置する必要があります。

デバイス フィルター フラグ

未分類のデバイスを非表示にします。

JOYTYPE_MOUSEHIDE

マウスを非表示にします。

JOYTYPE_KEYBHIDE

キーボードを非表示にします。

JOYTYPE_GAMEHIDE

ゲーム コントローラーを非表示にします。

JOYTYPE_HIDEACTIVE

非表示フラグはアクティブです。 他の非表示フラグが指定されている場合は、このフラグを含む必要があります。

デバイスの種類とサブタイプのオーバーライド フラグ

デバイスの種類 デバイス のサブタイプ
DI8DEVTYPE_1STPERSON DI8DEVTYPE1STPERSON_LIMITED
DI8DEVTYPE1STPERSON_UNKNOWN
DI8DEVTYPE1STPERSON_SIXDOF
DI8DEVTYPE1STPERSON_SHOOTER
DI8DEVTYPE_DEVICE 該当なし
DI8DEVTYPE_DEVICECTRL DI8DEVTYPEDEVICECTRL_UNKNOWN
DI8DEVTYPEDEVICECTRL_COMMSSELECTION
DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED
DI8DEVTYPE_DRIVING DI8DEVTYPEDRIVING_LIMITED
DI8DEVTYPEDRIVING_COMBINEDPEDALS
DI8DEVTYPEDRIVING_DUALPEDALS
DI8DEVTYPEDRIVING_THREEPEDALS
DI8DEVTYPEDRIVING_HANDHELD
DI8DEVTYPE_FLIGHT DI8DEVTYPEFLIGHT_LIMITED
DI8DEVTYPEFLIGHT_STICK
DI8DEVTYPEFLIGHT_YOKE
DI8DEVTYPEFLIGHT_RC
DI8DEVTYPE_GAMEPAD DI8DEVTYPEGAMEPAD_LIMITED
DI8DEVTYPEGAMEPAD_STANDARD
DI8DEVTYPEGAMEPAD_TILT
DI8DEVTYPE_JOYSTICK DI8DEVTYPEJOYSTICK_LIMITED
DI8DEVTYPEJOYSTICK_STANDARD
DI8DEVTYPEJOYSTICK_ENHANCED
DI8DEVTYPE_KEYBOARD DI8DEVTYPEKEYBOARD_UNKNOWN
DI8DEVTYPEKEYBOARD_PCXT
DI8DEVTYPEKEYBOARD_OLIVETTI
DI8DEVTYPEKEYBOARD_PCAT
DI8DEVTYPEKEYBOARD_PCENH
DI8DEVTYPEKEYBOARD_NOKIA1050
DI8DEVTYPEKEYBOARD_NOKIA9140
DI8DEVTYPEKEYBOARD_NEC98
DI8DEVTYPEKEYBOARD_NEC98LAPTOP
DI8DEVTYPEKEYBOARD_NEC98106
DI8DEVTYPEKEYBOARD_JAPAN106
DI8DEVTYPEKEYBOARD_JAPANAX
DI8DEVTYPEKEYBOARD_J3100
DI8DEVTYPE_MOUSE DI8DEVTYPEMOUSE_UNKNOWN
DI8DEVTYPEMOUSE_TRADITIONAL
DI8DEVTYPEMOUSE_FINGERSTICK
DI8DEVTYPEMOUSE_TOUCHPAD
DI8DEVTYPEMOUSE_TRACKBALL
DI8DEVTYPEMOUSE_ABSOLUTE
DI8DEVTYPE_REMOTE DI8DEVTYPEREMOTE_UNKNOWN
DI8DEVTYPE_SCREENPOINTER DI8DEVTYPESCREENPTR_UNKNOWN
DI8DEVTYPESCREENPTR_LIGHTGUN
DI8DEVTYPESCREENPTR_LIGHTPEN
DI8DEVTYPESCREENPTR_TOUCH
DI8DEVTYPE_SUPPLEMENTAL DI8DEVTYPESUPPLEMENTAL_UNKNOWN
DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER
DI8DEVTYPESUPPLEMENTAL_HEADTRACKER
DI8DEVTYPESUPPLEMENTAL_HANDTRACKER
DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE
DI8DEVTYPESUPPLEMENTAL_SHIFTER
DI8DEVTYPESUPPLEMENTAL_THROTTLE
DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE
DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS
DI8DEVTYPESUPPLEMENTAL_DUALPEDALS
DI8DEVTYPESUPPLEMENTAL_THREEPEDALS
DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS

wszMapFile[MAX_JOYSTRING]

注釈

"ジョイスティックの種類" は、DirectInput がデバイスと通信する方法と、デバイス データを報告する方法について説明します。 たとえば、"A Frobozz Industries SuperStick 5X は 3 軸の 5 ボタンのジョイスティックであり、3 番目の軸は 2 番目のポートの最初のビットとして報告されます。

DirectInput には、次の定義済みのジョイスティックの種類が付属しています。すべて、既定の場所に軸があります。

  • 2 軸、2 ボタンのジョイスティック。
  • 2 ボタンのゲーム パッド。
  • 2ボタンフライトヨーク。
  • スロットル付き2ボタンフライトヨーク。
  • 3 軸の 2 ボタンジョイスティック。
  • 3軸、4ボタンジョイスティック。
  • 4 ボタンのゲーム パッド。
  • 4ボタンフライトヨーク。
  • スロットル付き4ボタンフライトヨーク。
ジョイスティックの種類が JOYHWSETTINGS 構造体の dwFlags メンバーにJOY_HWS_ISGAMEPORTDRIVER フラグが設定されている場合、DIJOYTYPEINFO 構造体の wszCallout メンバーには、グローバル ドライバーとして使用できるドライバーの名前が含まれます。 ジョイスティックの種類はグローバル ドライバーの一覧に表示され、割り当て可能なジョイスティックの種類の一覧には表示されません。

DirectX 8.0 の新機能

dwFlags2 メンバーが DIJOYCONFIG 構造体に追加されました。 このメンバーは、DirectInput がデバイスをアプリケーションに列挙する方法を制御する情報を提供します。 dwFlags2 メンバーは、低い単語のデバイスの種類とサブタイプのオーバーライド フラグ、および上位ワードのデバイス列挙の "非表示" フラグを持ちます。 デバイスの種類とサブタイプのオーバーライド フラグは、DirectInput を使用するアプリケーションに対して DirectInput がデバイスを表示する方法を制御します。 これらは、アプリケーションがデバイスの列挙中に DirectInput から受け取るのと同じフラグです。 たとえば、デバイスがファームウェアでテレフォニー デバイスとして記述されている場合、テレフォニー デバイスはゲームに関連しないと見なされるため、通常はゲームに列挙されません。 ただし、DI8DEVTYPE_DEVICECTRLとDI8DEVTYPEDEVICECONTROL_COMMSSELECTIONを使用してこのデバイスを記述した場合、DirectInput はファームウェアから取得したデータをオーバーライドし、デバイスをゲームに列挙します。

dwFlags2 の上位ワードには、DirectInput がデバイスを DirectInput アプリケーションに列挙する方法をスコープとするフラグを含めることができます。 たとえば、一部のデバイスでは、複数の最上位レベルの HID コレクションが宣言されています。 このようなデバイスでは、キーボード、マウス、ジョイスティックをすべて 1 つで動作できることを宣言する場合があります。 一般に、これらの最上位レベルのコレクションの 1 つ以上は単なるファントム デバイスであり、ゲームには列挙しないでください。 このデバイスでは、 dwFlags2 の上位ワードを、JOYTYPE_HIDEACTIVE、JOYTYPE_MOUSEHIDE、およびJOYTYPE_KEYBHIDEフラグの組み合わせに設定できます。 JOYTYPE_HIDEACTIVE フラグは、DirectInput ですべての種類のデバイスを列挙しないことを示します。 高い単語に存在するJOYTYPE_MOUSEHIDEフラグとJOYTYPE_KEYBHIDE フラグは、デバイス上のファントム マウスとキーボードの列挙を抑制する必要があることを DirectInput に示します。 アプリケーションには、非表示になっている場合でも、デバイスを列挙するためのDIEDFL_INCLUDEHIDDEN (Microsoft Windows SDK ドキュメントで説明) フラグを含めることができます。

要件

要件
Header dinputd.h