Partager via


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.
Si le type de joystick a l’indicateur JOY_HWS_ISGAMEPORTDRIVER défini dans le membre dwFlags de la structure JOYHWSETTINGS, le membre wszCallout de la structure DIJOYTYPEINFO contient le nom d’un pilote qui peut être utilisé comme pilote global. Le type de joystick doit être affiché dans la liste des pilotes globaux et non dans la liste des types de joysticks qui peuvent être attribués.

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