Estructura DIJOYTYPEINFO (dinputd.h)

La estructura DIJOYTYPEINFO contiene información sobre un tipo de joystick.

Sintaxis

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;

Miembros

dwSize

Especifica el tamaño de la estructura en bytes. Este miembro debe inicializarse antes de usar la estructura.

hws

Configuración de hardware de joystick.

clsidConfig

Especifica un CLSID para el objeto de configuración de tipo joystick. Pase este CLSID a CoCreateInstance para crear un objeto de configuración. Este campo es cero si el tipo no tiene configuración personalizada.

wszDisplayName[MAX_JOYSTRING]

Nombre para mostrar del tipo de joystick. El nombre para mostrar es el nombre que se debe usar para mostrar el nombre del tipo de joystick al usuario final.

wszCallout[MAX_JOYSTICKOEMVXDNAME]

Dispositivo responsable de controlar el sondeo de dispositivos de este tipo. Se trata de una cadena nula si se va a usar la llamada de sondeo global.

wszHardwareId[MAX_JOYSTRING]

Identificador de hardware para el tipo de joystick. El identificador de hardware lo usa Plug and Play en Windows 2000 y Windows 98 (solo DirectX 7.0) para encontrar los controladores del joystick.

dwFlags1

Marcas de tipo joystick. Este miembro se puede establecer en una combinación de las marcas siguientes.

JOYTYPE_ZEROGAMEENUMOEMDATA

Campo de datos OEM de Zero GameEnum.

JOYTYPE_NOAUTODETECTGAMEPORT

El dispositivo no admite la ventanilla de juegos de detección automática.

JOYTYPE_NOHIDDIRECT

No use HID directamente para este dispositivo. (Solo Windows 98).

JOYTYPE_DEFAULTPROPSHEET

CPL invalida la hoja de propiedades personalizada.

dwFlags2

Combinación de marcas de invalidación de tipo o subtipo de dispositivo y filtrado de dispositivos. Las marcas de filtrado de dispositivos deben colocarse en el alto WORD de dwFlags2. El tipo de dispositivo y el subtipo deben colocarse en los WORD bajos y altos del miembro, respectivamente.

Marcas de filtrado de dispositivos

Ocultar dispositivos sin clasificar.

JOYTYPE_MOUSEHIDE

Oculte ratones.

JOYTYPE_KEYBHIDE

Ocultar teclados.

JOYTYPE_GAMEHIDE

Oculta los controladores de juego.

JOYTYPE_HIDEACTIVE

Ocultar marcas están activas. Esta marca debe incluirse si se especifican otras marcas de ocultación.

Marcas de invalidación de tipo de dispositivo y subtipo

Tipo de dispositivo Subtipo de dispositivo
DI8DEVTYPE_1STPERSON DI8DEVTYPE1STPERSON_LIMITED
DI8DEVTYPE1STPERSON_UNKNOWN
DI8DEVTYPE1STPERSON_SIXDOF
DI8DEVTYPE1STPERSON_SHOOTER
DI8DEVTYPE_DEVICE N/D
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]

Comentarios

Un "tipo de joystick" describe cómo DirectInput debe comunicarse con el dispositivo y cómo debe notificar los datos del dispositivo. Por ejemplo, "A Frobozz Industries SuperStick 5X es un joystick de tres ejes y cinco botones con el tercer eje notificado como el primer bit en el segundo puerto".

DirectInput incluye los siguientes tipos predefinidos de joystick, todos ellos con ejes en sus ubicaciones predeterminadas:

  • Joystick de dos ejes y dos botones.
  • Panel de juego de dos botones.
  • Yoke piloto de dos botones.
  • Yoke de vuelo de dos botones con limitación.
  • Joystick de dos botones y tres ejes.
  • Joystick de cuatro botones y tres ejes.
  • Panel para juegos de cuatro botones.
  • Yoke piloto de cuatro botones.
  • Yoke de vuelo de cuatro botones con limitación.
Si el tipo de joystick tiene la marca JOY_HWS_ISGAMEPORTDRIVER establecida en el miembro dwFlags de la estructura JOYHWSETTINGS, el miembro wszCallout de la estructura DIJOYTYPEINFO contiene el nombre de un controlador que se puede usar como controlador global. El tipo de joystick debe mostrarse en la lista de controladores globales y no mostrarse en la lista de tipos de joystick que se pueden asignar.

Novedades de DirectX 8.0

El miembro dwFlags2 se agregó a la estructura DIJOYCONFIG. Este miembro contiene información que controla cómo DirectInput enumera el dispositivo en las aplicaciones. El miembro dwFlags2 lleva marcas de invalidación de tipo de dispositivo y subtipo en la palabra baja y la enumeración de dispositivos "ocultar" marcas en la palabra alta. El tipo de dispositivo y las marcas de invalidación de subtipo controlan cómo DirectInput representa el dispositivo en las aplicaciones que usan DirectInput. Estas son las mismas marcas que las aplicaciones reciben de DirectInput durante la enumeración de dispositivos. Por ejemplo, si el dispositivo se describe en su firmware como un dispositivo de telefonía, normalmente no se enumeraría en juegos porque los dispositivos de telefonía no se consideran relevantes para los juegos. Sin embargo, si usaste DI8DEVTYPE_DEVICECTRL y DI8DEVTYPEDEVICECONTROL_COMMSSELECTION para describir este dispositivo, DirectInput invalida los datos que recupera del firmware y enumera el dispositivo a juegos.

La palabra alta de dwFlags2 se puede establecer para que contenga marcas que establezcan el ámbito de cómo DirectInput enumera el dispositivo en aplicaciones de DirectInput. Por ejemplo, algunos dispositivos declaran varias colecciones HID de nivel superior. Este dispositivo puede declarar que puede actuar como un teclado, un mouse y un joystick todos en uno. Por lo general, una o varias de estas colecciones de nivel superior son simplemente un dispositivo fantasma, que no se debe enumerar para los juegos. Para este dispositivo, la palabra alta de dwFlags2 se puede establecer en una combinación de las marcas JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE y JOYTYPE_KEYBHIDE. La marca JOYTYPE_HIDEACTIVE indica que DirectInput no debe enumerar el dispositivo por todos sus tipos. Las marcas JOYTYPE_MOUSEHIDE y JOYTYPE_KEYBHIDE también presentes en la palabra alta indican a DirectInput que se debe suprimir la enumeración del mouse fantasma y el teclado del dispositivo. Tenga en cuenta que las aplicaciones pueden incluir la marca DIEDFL_INCLUDEHIDDEN (descrita en la documentación de Microsoft Windows SDK) para enumerar los dispositivos, incluso si están ocultos.

Requisitos

Requisito Valor
Header dinputd.h