Share via


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.
Se o tipo de joystick tiver o sinalizador JOY_HWS_ISGAMEPORTDRIVER definido no membro dwFlags da estrutura JOYHWSETTINGS, o membro wszCallout da estrutura DIJOYTYPEINFO conterá o nome de um driver que pode ser usado como um driver global. O tipo de joystick deve ser mostrado na lista de drivers globais e não mostrado na lista de tipos de joystick que podem ser atribuídos.

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