Struttura DIJOYTYPEINFO (dinputd.h)
La struttura DIJOYTYPEINFO contiene informazioni su un tipo di joystick.
Sintassi
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;
Members
dwSize
Specifica le dimensioni della struttura in byte. Questo membro deve essere inizializzato prima dell'utilizzo della struttura.
hws
Impostazioni hardware joystick.
clsidConfig
Specifica un CLSID per l'oggetto di configurazione del tipo joystick. Passare questo CLSID a CoCreateInstance per creare un oggetto di configurazione. Questo campo è zero se il tipo non ha una configurazione personalizzata.
wszDisplayName[MAX_JOYSTRING]
Nome visualizzato per il tipo di joystick. Il nome visualizzato è il nome che deve essere utilizzato per visualizzare il nome del tipo di joystick all'utente finale.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
Il dispositivo responsabile della gestione del polling per i dispositivi di questo tipo. Si tratta di una stringa Null se deve essere utilizzato il callout di polling globale.
wszHardwareId[MAX_JOYSTRING]
ID hardware per il tipo di joystick. L'ID hardware viene usato da Plug and Play in Windows 2000 e Windows 98 (solo DirectX 7.0) per trovare i driver per il joystick.
dwFlags1
Flag di tipo joystick. Questo membro può essere impostato su una combinazione dei flag seguenti.
JOYTYPE_ZEROGAMEENUMOEMDATA
Campo dati OEM di Zero GameEnum.
JOYTYPE_NOAUTODETECTGAMEPORT
Il dispositivo non supporta il gameport di rilevamento automatico.
JOYTYPE_NOHIDDIRECT
Non usare hid direttamente per questo dispositivo. (solo Windows 98).
JOYTYPE_DEFAULTPROPSHEET
CPL esegue l'override della finestra delle proprietà personalizzate.
dwFlags2
Combinazione di flag di override del tipo di dispositivo e tipo di dispositivo/sottotipo. I flag di filtro dei dispositivi devono essere posizionati nell'alto WORD di dwFlags2. Il tipo di dispositivo e il sottotipo devono essere posizionati rispettivamente nei word bassi e alti del membro.
Flag di filtro dei dispositivi
Nascondere i dispositivi non classificati.
JOYTYPE_MOUSEHIDE
Nascondi topi.
JOYTYPE_KEYBHIDE
Nascondere le tastiere.
JOYTYPE_GAMEHIDE
Nascondere i controller di gioco.
JOYTYPE_HIDEACTIVE
I flag nascosti sono attivi. Questo flag deve essere incluso se vengono specificati altri flag nascosti.
Flag di override del tipo di dispositivo e del sottotipo
Tipo di dispositivo | Sottotipo 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]
Commenti
Un "tipo di joystick" descrive come DirectInput deve comunicare con il dispositivo e come deve segnalare i dati del dispositivo. Ad esempio, "A Frobozz Industries SuperStick 5X è un joystick a tre assi, a cinque pulsanti con il terzo asse segnalato come primo bit sulla seconda porta".
DirectInput include i seguenti tipi di joystick predefiniti, tutti con assi nelle posizioni predefinite:
- Joystick a due assi, a due pulsanti.
- Riquadro gioco a due pulsanti.
- Yogo di volo a due pulsanti.
- Yoke di volo a due pulsanti con limitazione.
- Joystick a tre assi, a due pulsanti.
- Joystick a tre assi, a quattro pulsanti.
- Riquadro gioco a quattro pulsanti.
- Yogo di volo a quattro pulsanti.
- Yoke di volo a quattro pulsanti con limitazione.
Novità in DirectX 8.0
Il membro dwFlags2 è stato aggiunto alla struttura DIJOYCONFIG. Questo membro contiene informazioni che controllano il modo in cui DirectInput enumera il dispositivo alle applicazioni. Il membro dwFlags2 include flag di override del tipo di dispositivo e sottotipo nella parola bassa e flag di enumerazione del dispositivo "nascondi" nella parola alta. Il tipo di dispositivo e i flag di override del sottotipo controllano il modo in cui DirectInput rappresenta il dispositivo alle applicazioni che usano DirectInput. Questi sono gli stessi flag ricevuti dalle applicazioni da DirectInput durante l'enumerazione del dispositivo. Ad esempio, se il dispositivo è descritto nel firmware come dispositivo di telefonia, normalmente non sarà enumerato nei giochi perché i dispositivi di telefonia non sono considerati rilevanti per i giochi. Tuttavia, se si usa DI8DEVTYPE_DEVICECTRL e DI8DEVTYPEDEVICECONTROL_COMMSSELECTION per descrivere questo dispositivo, DirectInput esegue l'override dei dati recuperati dal firmware ed enumera il dispositivo ai giochi.
La parola alta di dwFlags2 può essere impostata per contenere flag che includono l'ambito in cui DirectInput enumera il dispositivo nelle applicazioni DirectInput. Ad esempio, alcuni dispositivi dichiarano più raccolte HID di primo livello. Tale dispositivo potrebbe dichiarare che può agire come tastiera, un mouse e un joystick tutto in uno. In genere, una o più di queste raccolte di primo livello è semplicemente un dispositivo fantasma, che non deve essere enumerato ai giochi. Per questo dispositivo, la parola alta di dwFlags2 può essere impostata su una combinazione di JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE e flag di JOYTYPE_KEYBHIDE. Il flag JOYTYPE_HIDEACTIVE indica che DirectInput non deve enumerare il dispositivo in base a tutti i relativi tipi. I flag JOYTYPE_MOUSEHIDE e JOYTYPE_KEYBHIDE presenti anche nella parola alta indicano a DirectInput che l'enumerazione del mouse fantasma e della tastiera sul dispositivo deve essere eliminata. Si noti che le applicazioni possono includere il flag di DIEDFL_INCLUDEHIDDEN (descritto nella documentazione di Microsoft Windows SDK) per enumerare i dispositivi, anche se sono nascosti.
Requisiti
Requisito | Valore |
---|---|
Intestazione | dinputd.h |