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