GameInputDeviceInfo
描述輸入裝置的所有相關資訊。語法
成員
vendorId類型:uint16_t 識別輸入裝置的廠商。 productId
類型:uint16_t 識別輸入裝置的產品。 revisionNumber
類型:uint16_t 裝置的硬體修訂編號 (如果有的話)。 usage
類型:GameInputUsage 描述所使用輸入的兩部分索引。 hardwareVersion
類型:GameInputVersion 裝置的硬體版本 (如果有的話)。 firmwareVersion
類型:GameInputVersion 裝置的韌體版本 (如果有的話)。 deviceId
類型:APP_LOCAL_DEVICE_ID 輸入裝置的裝置識別碼。 deviceRootId
類型:APP_LOCAL_DEVICE_ID 輸入裝置的根識別碼。 deviceFamily
類型:GameInputDeviceFamily 指定輸入裝置所屬的輸入裝置系列。 supportedInput
類型:GameInputKind 描述裝置支援的一或多種輸入類型。 supportedRumbleMotors
類型:GameInputRumbleMotors 描述裝置上可存取的震動馬達 (如果有的話)。 supportedSystemButtons
類型:GameInputSystemButtons 描述用來控制系統的可用按鈕,通常在遊戲之外使用。 containerId
類型:GUID 輸入裝置的容器識別碼。 displayName
類型:const char* 描述裝置的易記名稱。 pnpPath
類型:const char* 描述裝置的隨插即用功能。使用此路徑可透過其他 API 參考基礎裝置。 keyboardInfo
類型:GameInputKeyboardInfo const * 鍵盤輸入裝置的相關資訊。 mouseInfo
類型:GameInputMouseInfo const * 滑鼠輸入裝置的相關資訊。 sensorsInfo
類型:GameInputSensorsInfo const * 裝置上感應器的相關資訊。 controllerInfo
類型:GameInputControllerInfo const * 一般控制器輸入裝置的相關資訊。控制器代表裝置上未經對應的原始軸、按鈕和開關。 arcadeStickInfo
類型:GameInputArcadeStickInfo const * 大型機台搖桿輸入裝置的相關資訊。 flightStickInfo
類型:GameInputFlightStickInfo const * 飛行搖桿輸入裝置的相關資訊。 gamepadInfo
類型:GameInputGamepadInfo const * 遊戲台輸入裝置的相關資訊。 racingWheelInfo
類型:GameInputRacingWheelInfo const * 賽車方向盤輸入裝置的相關資訊。 forceFeedbackMotorCount
類型:uint32_t 輸入裝置上的力回饋馬達數目。 forceFeedbackMotorInfo
類型:GameInputForceFeedbackMotorInfo const * 裝置上所有力回饋馬達的相關資訊。 inputReportCount
類型:uint32_t 裝置的輸入報告數目。 inputReportInfo
類型:GameInputRawDeviceReportInfo const * 輸入報告資訊物件。 outputReportCount
類型:uint32_t 裝置的輸出報告數目。 outputReportInfo
類型:GameInputRawDeviceReportInfo const * 輸出報告。
備註
此結構中的所有字串成員都使用 UTF-8 編碼。deviceId 是應用程式本機識別碼:一個可唯一識別裝置的 256 位元雜湊值。只要裝置連接至相同的 USB 連接埠,即使在應用程式的多次執行或系統重新開機之間,指定裝置的此識別碼也始終保持不變。應用程式會產生應用程式本機識別碼雜湊,其中部分使用呼叫端應用程式和系統特有的資訊。
deviceRootId 是另一個應用程式本機識別碼,用來識別複合裝置的根裝置節點。這可讓應用程式推斷個別裝置之間的關係。例如,某些遊戲鍵盤會將自己公開為具有多個鍵盤節點的複合裝置,藉此因應舊版 USB 同時按鍵數最多八個的限制。這些節點會合併成「系統」鍵盤,因此通常對使用者而言是透明的。但在透過 GameInput API 處理個別鍵盤的輸入時,了解這一點可讓應用程式在將功能對應至按鍵時,避免做出不當的假設 (例如,按鍵一律來自特定裝置)。如果裝置不是複合裝置上眾多介面之一,則 deviceId 和 deviceRootId 會相同。
displayName 字串包含裝置的「易記」名稱。您可以在應用程式的 UI 中顯示此字串,但無法保證它已當地語系化。缺少當地語系化的原因在於 GameInput API 會在數個位置搜尋此字串,而最終的後援來源之一是裝置的韌體。
GameInputDeviceInfo 結構中的最後幾個欄位是指向裝置相關資訊之可變大小陣列的指標,例如力回饋和觸覺回饋支援的相關資訊。NULL 指標表示裝置不提供或不支援對應的功能。結構中對應的欄位會指示每個陣列中的元素數目,如原始程式碼註釋語言 (SAL) 註釋中所述。
沒有任何輸入裝置會為所有屬性提供可讀取的值。某些裝置只包含相關屬性的值。系統會透過 IGameInputDevice::GetDeviceInfo 傳回此資訊。
概念文件
另請參閱
輸入 API 概觀GameInput
IGameInputDevice::GetDeviceInfo
