DIJOYTYPEINFO-Struktur (dinputd.h)

Die DIJOYTYPEINFO-Struktur enthält Informationen zu einem Joysticktyp.

Syntax

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;

Member

dwSize

Gibt die Größe der Struktur in Bytes an. Dieser Member muss initialisiert werden, bevor die -Struktur verwendet wird.

hws

Joystick-Hardwareeinstellungen.

clsidConfig

Gibt eine CLSID für das Joysticktypkonfigurationsobjekt an. Übergeben Sie diese CLSID an CoCreateInstance, um ein Konfigurationsobjekt zu erstellen. Dieses Feld ist null, wenn der Typ nicht über eine benutzerdefinierte Konfiguration verfügt.

wszDisplayName[MAX_JOYSTRING]

Der Anzeigename für den Joysticktyp. Der Anzeigename ist der Name, der verwendet werden soll, um dem Endbenutzer den Namen des Joysticktyps anzuzeigen.

wszCallout[MAX_JOYSTICKOEMVXDNAME]

Das Gerät, das für die Verarbeitung von Abrufvorgängen für Geräte dieses Typs verantwortlich ist. Dies ist eine NULL-Zeichenfolge, wenn die globale Abrufbeschriftung verwendet werden soll.

wszHardwareId[MAX_JOYSTRING]

Die Hardware-ID für den Joysticktyp. Die Hardware-ID wird von Plug & Play unter Windows 2000 und Windows 98 (nur DirectX 7.0) verwendet, um die Treiber für den Joystick zu finden.

dwFlags1

Joysticktypflags. Dieser Member kann auf eine Kombination der folgenden Flags festgelegt werden.

JOYTYPE_ZEROGAMEENUMOEMDATA

Das OEM-Datenfeld von Zero GameEnum.

JOYTYPE_NOAUTODETECTGAMEPORT

Das Gerät unterstützt keinen Gameport für die automatische Erkennung.

JOYTYPE_NOHIDDIRECT

Verwenden Sie HID nicht direkt für dieses Gerät. (Nur Windows 98.)

JOYTYPE_DEFAULTPROPSHEET

CPL überschreibt das benutzerdefinierte Eigenschaftenblatt.

dwFlags2

Kombination aus Gerätefilterung und Gerätetyp-/Untertyp-Außerkraftsetzungsflags. Gerätefilterflags sollten im hohen WORD-Wert von dwFlags2 platziert werden. Gerätetyp und Untertyp sollten in den niedrigen bzw. hohen WORDs des Members platziert werden.

Gerätefilterflags

Blenden Sie nicht klassifizierte Geräte aus.

JOYTYPE_MOUSEHIDE

Ausblenden von Mäusen.

JOYTYPE_KEYBHIDE

Tastaturen ausblenden.

JOYTYPE_GAMEHIDE

Gamecontroller ausblenden.

JOYTYPE_HIDEACTIVE

Ausblenden von Flags sind aktiv. Dieses Flag muss eingeschlossen werden, wenn andere Ausblendeflags angegeben werden.

Außerkraftsetzungsflags für Gerätetyp und Untertyp

Gerätetyp Geräteuntertyp
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]

Hinweise

Ein "Joysticktyp" beschreibt, wie DirectInput mit dem Gerät kommunizieren soll und wie Gerätedaten gemeldet werden sollen. Beispiel: "A Frobozz Industries SuperStick 5X ist ein dreiachsiges Joystick mit fünf Tasten, wobei die dritte Achse als erstes Bit am zweiten Port gemeldet wird."

DirectInput enthält die folgenden vordefinierten Joysticktypen, alle mit Achsen an ihren Standardpositionen:

  • Zwei-Achsen-Joystick mit zwei Tasten.
  • Gamepad mit zwei Tasten.
  • Zwei-Knopf-Flugjoch.
  • Zwei-Knopf-Flugjoch mit Drosselung.
  • Drei-Achsen-Joystick mit zwei Tasten.
  • Drei-Achsen-Joystick mit vier Tasten.
  • Spielpad mit vier Tasten.
  • Vier-Tasten-Flugjoch.
  • Vier-Knopf-Flugjoch mit Drosselung.
Wenn für den Joysticktyp das flag JOY_HWS_ISGAMEPORTDRIVER im dwFlags-Element der JOYHWSETTINGS-Struktur festgelegt ist, enthält das wszCallout-Element der DIJOYTYPEINFO-Struktur den Namen eines Treibers, der als globaler Treiber verwendet werden kann. Der Joysticktyp sollte in der Liste der globalen Treiber und nicht in der Liste der Joysticktypen angezeigt werden, die zugewiesen werden können.

Neu in DirectX 8.0

Das dwFlags2-Element wurde der DIJOYCONFIG-Struktur hinzugefügt. Dieses Element enthält Informationen, die steuern, wie DirectInput das Gerät in Anwendungen aufzählt. Das dwFlags2-Element enthält Gerätetyp- und Untertyp-Außerkraftsetzungsflags im low-Wort und Geräteenumerationsflags im hohen Wort "ausblenden". Die Außerkraftsetzungsflags für Gerätetyp und Untertyp steuern, wie DirectInput Ihr Gerät für Anwendungen darstellt, die DirectInput verwenden. Dies sind die gleichen Flags, die Anwendungen von DirectInput während der Geräteenumeration erhalten. Wenn Ihr Gerät beispielsweise in seiner Firmware als Telefoniegerät beschrieben wird, wird es normalerweise nicht in Spiele aufgezählt, da Telefoniegeräte für Spiele nicht relevant sind. Wenn Sie jedoch DI8DEVTYPE_DEVICECTRL und DI8DEVTYPEDEVICECONTROL_COMMSSELECTION verwendet haben, um dieses Gerät zu beschreiben, überschreibt DirectInput die Daten, die es aus der Firmware abruft, und zählt das Gerät in Spiele auf.

Das hohe Wort dwFlags2 kann so festgelegt werden, dass es Flags enthält, die festlegen, wie DirectInput das Gerät in DirectInput-Anwendungen aufzählt. Beispielsweise deklarieren einige Geräte mehrere HID-Sammlungen der obersten Ebene. Ein solches Gerät könnte deklarieren, dass es als Tastatur, Maus und Joystick in einem fungieren kann. Im Allgemeinen ist eine oder mehrere dieser Sammlungen auf oberster Ebene nur ein Phantomgerät, das nicht in Spiele aufgezählt werden sollte. Für dieses Gerät kann das hohe Wort dwFlags2 auf eine Kombination aus den Flags JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE und JOYTYPE_KEYBHIDE festgelegt werden. Das flag JOYTYPE_HIDEACTIVE gibt an, dass DirectInput das Gerät nicht nach allen Typen auflisten sollte. Die flags JOYTYPE_MOUSEHIDE und JOYTYPE_KEYBHIDE, die ebenfalls im hohen Wort vorhanden sind, weisen DirectInput darauf hin, dass die Enumeration der Phantommaus und der Tastatur auf dem Gerät unterdrückt werden soll. Beachten Sie, dass Anwendungen das flag DIEDFL_INCLUDEHIDDEN (in der Microsoft Windows SDK-Dokumentation beschrieben) enthalten können, um Geräte aufzulisten, auch wenn sie ausgeblendet sind.

Anforderungen

Anforderung Wert
Header dinputd.h