Structure DIJOYTYPEINFO (dinputd.h)
La structure DIJOYTYPEINFO contient des informations sur un type de joystick.
Syntaxe
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;
Membres
dwSize
Spécifie la taille de la structure en octets. Ce membre doit être initialisé avant l’utilisation de la structure.
hws
Paramètres matériels du joystick.
clsidConfig
Spécifie un CLSID pour l’objet de configuration de type joystick. Passez ce CLSID à CoCreateInstance pour créer un objet de configuration. Ce champ est égal à zéro si le type n’a pas de configuration personnalisée.
wszDisplayName[MAX_JOYSTRING]
Nom d’affichage du type de joystick. Le nom d’affichage est le nom qui doit être utilisé pour afficher le nom du type de joystick à l’utilisateur final.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
Appareil responsable de la gestion de l’interrogation pour les appareils de ce type. Il s’agit d’une chaîne null si la légende d’interrogation globale doit être utilisée.
wszHardwareId[MAX_JOYSTRING]
ID matériel du type de joystick. L’ID matériel est utilisé par Plug-and-Play sur Windows 2000 et Windows 98 (DirectX 7.0 uniquement) pour rechercher les pilotes du joystick.
dwFlags1
Indicateurs de type joystick. Ce membre peut être défini sur une combinaison des indicateurs suivants.
JOYTYPE_ZEROGAMEENUMOEMDATA
Champ de données OEM de Zero GameEnum.
JOYTYPE_NOAUTODETECTGAMEPORT
L’appareil ne prend pas en charge la gameport autodetect.
JOYTYPE_NOHIDDIRECT
N’utilisez pas HID directement pour cet appareil. (Windows 98 uniquement.)
JOYTYPE_DEFAULTPROPSHEET
CPL remplace la feuille de propriétés personnalisée.
dwFlags2
Combinaison d’indicateurs de filtrage d’appareil et d’indicateurs de remplacement de type/sous-type d’appareil. Les indicateurs de filtrage d’appareil doivent être placés dans le mot élevé de dwFlags2. Le type d’appareil et le sous-type doivent être placés respectivement dans les words bas et élevés du membre.
Indicateurs de filtrage des appareils
Masquer les appareils non classifiés.
JOYTYPE_MOUSEHIDE
Masquer les souris.
JOYTYPE_KEYBHIDE
Masquer les claviers.
JOYTYPE_GAMEHIDE
Masquer les contrôleurs de jeu.
JOYTYPE_HIDEACTIVE
Masquer les indicateurs sont actifs. Cet indicateur doit être inclus si d’autres indicateurs de masquage sont spécifiés.
Indicateurs de remplacement de type d’appareil et de sous-type
Type d’appareil | Sous-type d’appareil |
---|---|
DI8DEVTYPE_1STPERSON | DI8DEVTYPE1STPERSON_LIMITED |
DI8DEVTYPE1STPERSON_UNKNOWN | |
DI8DEVTYPE1STPERSON_SIXDOF | |
DI8DEVTYPE1STPERSON_SHOOTER | |
DI8DEVTYPE_DEVICE | n/a |
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]
Remarques
Un « type de joystick » décrit comment DirectInput doit communiquer avec l’appareil et comment il doit signaler les données de l’appareil. Par exemple, « Un SuperStick 5X Frobozz Industries est un joystick à trois axes à cinq boutons dont le troisième axe est signalé comme premier bit sur le deuxième port ».
DirectInput est fourni avec les types de joysticks prédéfinis suivants, tous avec des axes dans leurs emplacements par défaut :
- Manette de jeu à deux axes, à deux boutons.
- Pavé de jeu à deux boutons.
- Joug de vol à deux boutons.
- Joug de vol à deux boutons avec limitation.
- Manette de contrôle à trois axes, à deux boutons.
- Manette de contrôle à trois axes, à quatre boutons.
- Pavé de jeu à quatre boutons.
- Joug de vol à quatre boutons.
- Joug de vol à quatre boutons avec limitation.
Nouveautés de DirectX 8.0
Le membre dwFlags2 a été ajouté à la structure DIJOYCONFIG. Ce membre contient des informations qui contrôlent la façon dont DirectInput énumère l’appareil aux applications. Le membre dwFlags2 comporte des indicateurs de remplacement de type d’appareil et de sous-type dans le mot bas, et des indicateurs de « masquage » de l’énumération de l’appareil dans le mot haut. Les indicateurs de remplacement de type d’appareil et de sous-type contrôlent la façon dont DirectInput représente votre appareil aux applications qui utilisent DirectInput. Il s’agit des mêmes indicateurs que les applications reçoivent de DirectInput lors de l’énumération de l’appareil. Par exemple, si votre appareil est décrit dans son microprogramme en tant qu’appareil de téléphonie, il ne serait normalement pas énuméré aux jeux, car les appareils de téléphonie ne sont pas considérés comme pertinents pour les jeux. Toutefois, si vous avez utilisé DI8DEVTYPE_DEVICECTRL et DI8DEVTYPEDEVICECONTROL_COMMSSELECTION pour décrire cet appareil, DirectInput remplace les données qu’il récupère à partir du microprogramme et énumère l’appareil aux jeux.
Le mot haut dwFlags2 peut être défini pour contenir des indicateurs qui définissent la façon dont DirectInput énumère l’appareil aux applications DirectInput. Par exemple, certains appareils déclarent plusieurs collections HID de niveau supérieur. Un tel appareil peut déclarer qu’il peut faire office de clavier, de souris et de manette de jeu. En règle générale, une ou plusieurs de ces collections de niveau supérieur sont simplement un appareil fantôme, qui ne doit pas être énuméré dans les jeux. Pour cet appareil, le mot élevé de dwFlags2 peut être défini sur une combinaison des indicateurs JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE et JOYTYPE_KEYBHIDE. L’indicateur JOYTYPE_HIDEACTIVE indique que DirectInput ne doit pas énumérer l’appareil par tous ses types. Les indicateurs JOYTYPE_MOUSEHIDE et JOYTYPE_KEYBHIDE également présents dans le mot aigu indiquent à DirectInput que l’énumération de la souris et du clavier fantômes sur l’appareil doit être supprimée. Notez que les applications peuvent inclure l’indicateur DIEDFL_INCLUDEHIDDEN (décrit dans la documentation Microsoft Windows SDK) pour énumérer les appareils, même s’ils sont masqués.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dinputd.h |