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.
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 |