DIJOYTYPEINFO 結構 (dinputd.h)
DIJOYTYPEINFO 結構包含遊戲桿類型的相關信息。
語法
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;
成員
dwSize
以位元組為單位指定 結構的大小。 使用 結構之前,必須先初始化這個成員。
hws
遊戲桿硬體設定。
clsidConfig
指定遊戲桿類型組態物件的CLSID。 將此 CLSID 傳遞至 CoCreateInstance 以建立組態物件。 如果類型沒有自定義組態,則此字段為零。
wszDisplayName[MAX_JOYSTRING]
遊戲桿類型的顯示名稱。 顯示名稱是應該用來向用戶顯示遊戲桿類型名稱的名稱。
wszCallout[MAX_JOYSTICKOEMVXDNAME]
負責處理此類型裝置輪詢的裝置。 如果要使用全域輪詢圖說文字,則這是 Null 字串。
wszHardwareId[MAX_JOYSTRING]
遊戲桿類型的硬體識別碼。 Windows 2000 和 Windows 98 (DirectX 7.0 上的 隨插即用 只會使用硬體標識碼) 來尋找遊戲桿的驅動程式。
dwFlags1
遊戲桿類型旗標。 這個成員可以設定為下列旗標的組合。
JOYTYPE_ZEROGAMEENUMOEMDATA
Zero GameEnum 的 OEM 數據欄位。
JOYTYPE_NOAUTODETECTGAMEPORT
裝置不支援自動偵測遊戲區。
JOYTYPE_NOHIDDIRECT
請勿直接將此裝置使用 HID。 僅限 Windows 98 (。)
JOYTYPE_DEFAULTPROPSHEET
CPL 會覆寫自定義屬性表。
dwFlags2
裝置篩選和裝置類型/子類型覆寫旗標的組合。 裝置篩選旗標應該放在 dwFlags2 的高 WORD 中。 裝置類型和子類型應該分別放在成員的低和高 WORD 中。
裝置篩選旗標
隱藏未分類的裝置。
JOYTYPE_MOUSEHIDE
隱藏滑鼠。
JOYTYPE_KEYBHIDE
隱藏鍵盤。
JOYTYPE_GAMEHIDE
隱藏遊戲控制器。
JOYTYPE_HIDEACTIVE
隱藏旗標為使用中。 如果指定任何其他隱藏旗標,則必須包含此旗標。
裝置類型和子類型覆寫旗標
裝置類型 | 裝置子類型 |
---|---|
DI8DEVTYPE_1STPERSON | DI8DEVTYPE1STPERSON_LIMITED |
DI8DEVTYPE1STPERSON_UNKNOWN | |
DI8DEVTYPE1STPERSON_SIXDOF | |
DI8DEVTYPE1STPERSON_SHOOTER | |
DI8DEVTYPE_DEVICE | n/a |
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]
備註
「遊戲桿類型」描述 DirectInput 如何與裝置通訊,以及如何報告裝置數據。 例如,「Frobozz Industries SuperStick 5X 是三軸、五個按鈕遊戲桿,其中第三個軸回報為第二個埠上的第一個位」。
DirectInput 隨附下列預先定義的遊戲桿類型,其預設位置全都有座標軸:
- 雙軸、雙按鈕遊戲桿。
- 雙按鈕遊戲板。
- 雙按鈕正式發行前小眾測試版。
- 雙按鈕飛行帶節流。
- 三軸、雙按鈕遊戲桿。
- 三軸、四按鈕遊戲桿。
- 四按鈕遊戲板。
- 四個按鈕飛出前小眾測試版。
- 具有節流功能的四鍵飛行。
DirectX 8.0 的新功能
dwFlags2 成員已新增至 DIJOYCONFIG 結構。 此成員會攜帶控制 DirectInput 如何列舉裝置到應用程式的資訊。 dwFlags2 成員具有低字中的裝置類型和子類型覆寫旗標,以及高字中的裝置列舉「隱藏」旗標。 裝置類型和子類型覆寫旗標會控制 DirectInput 如何將您的裝置與使用 DirectInput 的應用程式產生關聯。 這些是應用程式在裝置列舉期間從 DirectInput 接收的相同旗標。 例如,如果您的裝置在其韌體中描述為電話語音裝置,則通常不會列舉為遊戲,因為電話語音裝置不會被視為與遊戲相關。 不過,如果您使用DI8DEVTYPE_DEVICECTRL和DI8DEVTYPEDEVICECONTROL_COMMSSELECTION來描述此裝置,DirectInput 會覆寫它從韌體擷取的數據,並將裝置列舉為遊戲。
dwFlags2 的高字可以設定為包含旗標,以限定 DirectInput 如何將裝置列舉至 DirectInput 應用程式的範圍。 例如,某些裝置會宣告多個最上層 HID 集合。 這類裝置可能會宣告它可以當做鍵盤、滑鼠和遊戲桿全部放在一個中。 一般而言,這些最上層集合的一或多個只是虛設裝置,不應該列舉到遊戲。 針對此裝置, dwFlags2 的高字可以設定為JOYTYPE_HIDEACTIVE、JOYTYPE_MOUSEHIDE和JOYTYPE_KEYBHIDE旗標的組合。 JOYTYPE_HIDEACTIVE旗標表示 DirectInput 不應該依其所有類型列舉裝置。 JOYTYPE_MOUSEHIDE和JOYTYPE_KEYBHIDE旗標也出現在高字中,表示應該隱藏裝置上虛設滑鼠和鍵盤列舉的 DirectInput。 請注意,應用程式可以包含 Microsoft Windows SDK 檔中所述的DIEDFL_INCLUDEHIDDEN (,) 旗標來列舉裝置,即使這些裝置已隱藏也一樣。
規格需求
需求 | 值 |
---|---|
標頭 | dinputd.h |