共用方式為


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 隨附下列預先定義的遊戲桿類型,其預設位置全都有座標軸:

  • 雙軸、雙按鈕遊戲桿。
  • 雙按鈕遊戲板。
  • 雙按鈕正式發行前小眾測試版。
  • 雙按鈕飛行帶節流。
  • 三軸、雙按鈕遊戲桿。
  • 三軸、四按鈕遊戲桿。
  • 四按鈕遊戲板。
  • 四個按鈕飛出前小眾測試版。
  • 具有節流功能的四鍵飛行。
如果遊戲桿類型在 JOYHWSETTINGS 結構的 dwFlags 成員中設定了 JOY_HWS_ISGAMEPORTDRIVER 旗標,則 DIJOYTYPEINFO 結構的 wszCallout 成員包含可用來作為全域驅動程式的驅動程式名稱。 遊戲桿類型應該顯示在全域驅動程式清單中,而不是顯示在可指派的遊戲桿類型清單中。

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