Estrutura DIJOYTYPEINFO (dinputd.h)
A estrutura DIJOYTYPEINFO contém informações sobre um tipo de joystick.
Sintaxe
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;
Membros
dwSize
Especifica o tamanho da estrutura em bytes. Esse membro deve ser inicializado antes que a estrutura seja usada.
hws
Configurações de hardware do joystick.
clsidConfig
Especifica um CLSID para o objeto de configuração do tipo joystick. Passe esse CLSID para CoCreateInstance para criar um objeto de configuração. Esse campo será zero se o tipo não tiver configuração personalizada.
wszDisplayName[MAX_JOYSTRING]
O nome de exibição do tipo joystick. O nome de exibição é o nome que deve ser usado para exibir o nome do tipo joystick para o usuário final.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
O dispositivo responsável por lidar com sondagem para dispositivos desse tipo. Essa será uma cadeia de caracteres nula se o texto explicativo de sondagem global for usado.
wszHardwareId[MAX_JOYSTRING]
A ID de hardware do tipo joystick. A ID de hardware é usada por Plug and Play no Windows 2000 e no Windows 98 (somente DirectX 7.0) para encontrar os drivers para o joystick.
dwFlags1
Sinalizadores de tipo joystick. Esse membro pode ser definido como uma combinação dos sinalizadores a seguir.
JOYTYPE_ZEROGAMEENUMOEMDATA
Campo de dados OEM do GameEnum Zero.
JOYTYPE_NOAUTODETECTGAMEPORT
O dispositivo não dá suporte ao gameport de detecção automática.
JOYTYPE_NOHIDDIRECT
Não use HID diretamente para este dispositivo. (Somente Windows 98.)
JOYTYPE_DEFAULTPROPSHEET
A CPL substitui a folha de propriedades personalizada.
dwFlags2
Combinação de filtro de dispositivo e sinalizadores de substituição de tipo/subtipo do dispositivo. Os sinalizadores de filtragem de dispositivo devem ser colocados no WORD alto de dwFlags2. O tipo de dispositivo e o subtipo devem ser colocados nos WORDs baixo e alto do membro, respectivamente.
Sinalizadores de filtragem de dispositivo
Ocultar dispositivos não classificados.
JOYTYPE_MOUSEHIDE
Ocultar ratos.
JOYTYPE_KEYBHIDE
Ocultar teclados.
JOYTYPE_GAMEHIDE
Ocultar controladores de jogo.
JOYTYPE_HIDEACTIVE
Os sinalizadores de ocultação estão ativos. Esse sinalizador deve ser incluído se qualquer outro sinalizador de ocultação for especificado.
Tipo de dispositivo e sinalizadores de substituição de subtipo
Tipo de dispositivo | Subtipo do 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]
Comentários
Um "tipo de joystick" descreve como o DirectInput deve se comunicar com o dispositivo e como ele deve relatar dados do dispositivo. Por exemplo, "Um SuperStick 5X das Indústrias Frobozz é um joystick de três eixos e cinco botões com o terceiro eixo relatado como o primeiro bit na segunda porta.".
O DirectInput vem com os seguintes tipos de joystick predefinidos, todos com eixos em seus locais padrão:
- Joystick de dois eixos e dois botões.
- Teclado de jogo de dois botões.
- Yoke de pré-lançamento de dois botões.
- Yoke de voo de dois botões com aceleração.
- Joystick de três eixos e dois botões.
- Joystick de três eixos e quatro botões.
- Painel de jogo de quatro botões.
- Yoke de voo de quatro botões.
- Yoke de voo de quatro botões com aceleração.
Novo no DirectX 8.0
O membro dwFlags2 foi adicionado à estrutura DIJOYCONFIG. Esse membro carrega informações que controlam como o DirectInput enumera o dispositivo para aplicativos. O membro dwFlags2 carrega sinalizadores de substituição de tipo de dispositivo e subtipo na palavra baixa e sinalizadores de enumeração de dispositivo "ocultando" na palavra alta. O tipo de dispositivo e os sinalizadores de subtipo substituem o controle de como o DirectInput retrata seu dispositivo para aplicativos que usam DirectInput. Esses são os mesmos sinalizadores que os aplicativos recebem do DirectInput durante a enumeração do dispositivo. Por exemplo, se o dispositivo for descrito em seu firmware como um dispositivo de telefonia, ele normalmente não será enumerado para jogos porque dispositivos de telefonia não são considerados relevantes para jogos. No entanto, se você usou DI8DEVTYPE_DEVICECTRL e DI8DEVTYPEDEVICECONTROL_COMMSSELECTION para descrever esse dispositivo, o DirectInput substituirá os dados recuperados do firmware e enumerará o dispositivo para jogos.
A palavra alta de dwFlags2 pode ser definida para conter sinalizadores que definem como o DirectInput enumera o dispositivo para aplicativos DirectInput. Por exemplo, alguns dispositivos declaram várias coleções HID de nível superior. Esse dispositivo pode declarar que ele pode atuar como um teclado, um mouse e um joystick tudo em um. Geralmente, uma ou mais dessas coleções de nível superior são apenas um dispositivo fantasma, que não deve ser enumerado para jogos. Para este dispositivo, a palavra alta dwFlags2 pode ser definida como uma combinação dos sinalizadores JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE e JOYTYPE_KEYBHIDE. O sinalizador JOYTYPE_HIDEACTIVE indica que DirectInput não deve enumerar o dispositivo por todos os seus tipos. Os sinalizadores JOYTYPE_MOUSEHIDE e JOYTYPE_KEYBHIDE também presentes na palavra alta indicam ao DirectInput que a enumeração do mouse fantasma e do teclado no dispositivo deve ser suprimida. Observe que os aplicativos podem incluir o sinalizador DIEDFL_INCLUDEHIDDEN (descrito na documentação do SDK do Microsoft Windows) para enumerar dispositivos, mesmo que estejam ocultos.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | dinputd.h |