// // Copyright (c) Microsoft Corporation. All rights reserved. // // // File generated by WinMDIDL version 8.00.0021 // import "inspectable.idl"; import "AsyncInfo.idl"; import "EventToken.idl"; import "windowscontracts.idl"; import "Windows.Foundation.idl"; import "Windows.Gaming.Input.idl"; import "Windows.Storage.Streams.idl"; // Forward Declare namespace Windows { namespace Foundation { apicontract UniversalApiContract; } } namespace Windows { namespace Gaming { namespace Input { interface IGameController; } } } namespace Windows { namespace Storage { namespace Streams { interface IInputStream; } } } namespace Windows { namespace Gaming { namespace Input { namespace Custom { typedef enum GipFirmwareUpdateStatus GipFirmwareUpdateStatus; typedef enum GipMessageClass GipMessageClass; typedef enum XusbDeviceSubtype XusbDeviceSubtype; typedef enum XusbDeviceType XusbDeviceType; typedef struct GameControllerVersionInfo GameControllerVersionInfo; typedef struct GipFirmwareUpdateProgress GipFirmwareUpdateProgress; interface ICustomGameControllerFactory; interface IGameControllerFactoryManagerStatics; interface IGameControllerFactoryManagerStatics2; interface IGameControllerInputSink; interface IGameControllerProvider; interface IGipFirmwareUpdateResult; interface IGipGameControllerInputSink; interface IGipGameControllerProvider; interface IHidGameControllerInputSink; interface IHidGameControllerProvider; interface IXusbGameControllerInputSink; interface IXusbGameControllerProvider; runtimeclass GameControllerFactoryManager; runtimeclass GipFirmwareUpdateResult; runtimeclass GipGameControllerProvider; runtimeclass HidGameControllerProvider; runtimeclass XusbGameControllerProvider; } } } } // Generic instantiations namespace Windows { namespace Gaming { namespace Input { namespace Custom { declare { interface Windows.Foundation.IAsyncOperationWithProgress; } } } } } // Type definition namespace Windows { namespace Gaming { namespace Input { namespace Custom { [contract(Windows.Foundation.UniversalApiContract, 3.0)] enum GipFirmwareUpdateStatus { Completed = 0, UpToDate = 1, Failed = 2 }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] enum GipMessageClass { Command = 0, LowLatency = 1, StandardLatency = 2 }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] enum XusbDeviceSubtype { Unknown = 0, Gamepad = 1, ArcadePad = 2, ArcadeStick = 3, FlightStick = 4, Wheel = 5, Guitar = 6, GuitarAlternate = 7, GuitarBass = 8, DrumKit = 9, DancePad = 10 }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] enum XusbDeviceType { Unknown = 0, Gamepad = 1 }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] struct GameControllerVersionInfo { UINT16 Major; UINT16 Minor; UINT16 Build; UINT16 Revision; }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] struct GipFirmwareUpdateProgress { DOUBLE PercentCompleted; UINT32 CurrentComponentId; }; [contract(Windows.Foundation.UniversalApiContract, 3.0)] [uuid(69A0AE5E-758E-4CBE-ACE6-62155FE9126F)] interface ICustomGameControllerFactory : IInspectable { HRESULT CreateGameController([in] Windows.Gaming.Input.Custom.IGameControllerProvider* provider, [out] [retval] IInspectable** value); HRESULT OnGameControllerAdded([in] Windows.Gaming.Input.IGameController* value); HRESULT OnGameControllerRemoved([in] Windows.Gaming.Input.IGameController* value); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [exclusiveto(Windows.Gaming.Input.Custom.GameControllerFactoryManager)] [uuid(36CB66E3-D0A1-4986-A24C-40B137DEBA9E)] interface IGameControllerFactoryManagerStatics : IInspectable { HRESULT RegisterCustomFactoryForGipInterface([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory* factory, [in] GUID interfaceId); HRESULT RegisterCustomFactoryForHardwareId([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory* factory, [in] UINT16 hardwareVendorId, [in] UINT16 hardwareProductId); HRESULT RegisterCustomFactoryForXusbType([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory* factory, [in] Windows.Gaming.Input.Custom.XusbDeviceType xusbType, [in] Windows.Gaming.Input.Custom.XusbDeviceSubtype xusbSubtype); } [contract(Windows.Foundation.UniversalApiContract, 4.0)] [exclusiveto(Windows.Gaming.Input.Custom.GameControllerFactoryManager)] [uuid(EACE5644-19DF-4115-B32A-2793E2AEA3BB)] interface IGameControllerFactoryManagerStatics2 : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics { HRESULT TryGetFactoryControllerFromGameController([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory* factory, [in] Windows.Gaming.Input.IGameController* gameController, [out] [retval] Windows.Gaming.Input.IGameController** factoryController); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [uuid(1FF6F922-C640-4C78-A820-9A715C558BCB)] interface IGameControllerInputSink : IInspectable { HRESULT OnInputResumed([in] UINT64 timestamp); HRESULT OnInputSuspended([in] UINT64 timestamp); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [uuid(E6D73982-2996-4559-B16C-3E57D46E58D6)] interface IGameControllerProvider : IInspectable { [propget] HRESULT FirmwareVersionInfo([out] [retval] Windows.Gaming.Input.Custom.GameControllerVersionInfo* value); [propget] HRESULT HardwareProductId([out] [retval] UINT16* value); [propget] HRESULT HardwareVendorId([out] [retval] UINT16* value); [propget] HRESULT HardwareVersionInfo([out] [retval] Windows.Gaming.Input.Custom.GameControllerVersionInfo* value); [propget] HRESULT IsConnected([out] [retval] boolean* value); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [exclusiveto(Windows.Gaming.Input.Custom.GipFirmwareUpdateResult)] [uuid(6B794D32-8553-4292-8E03-E16651A2F8BC)] interface IGipFirmwareUpdateResult : IInspectable { [propget] HRESULT ExtendedErrorCode([out] [retval] UINT32* value); [propget] HRESULT FinalComponentId([out] [retval] UINT32* value); [propget] HRESULT Status([out] [retval] Windows.Gaming.Input.Custom.GipFirmwareUpdateStatus* value); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [uuid(A2108ABF-09F1-43BC-A140-80F899EC36FB)] interface IGipGameControllerInputSink : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerInputSink { HRESULT OnKeyReceived([in] UINT64 timestamp, [in] BYTE keyCode, [in] boolean isPressed); HRESULT OnMessageReceived([in] UINT64 timestamp, [in] Windows.Gaming.Input.Custom.GipMessageClass messageClass, [in] BYTE messageId, [in] BYTE sequenceId, [in] UINT32 __messageBufferSize, [in] [size_is(__messageBufferSize)] BYTE* messageBuffer); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [exclusiveto(Windows.Gaming.Input.Custom.GipGameControllerProvider)] [uuid(DBCF1E19-1AF5-45A8-BF02-A0EE50C823FC)] interface IGipGameControllerProvider : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerProvider { HRESULT SendMessage([in] Windows.Gaming.Input.Custom.GipMessageClass messageClass, [in] BYTE messageId, [in] UINT32 __messageBufferSize, [in] [size_is(__messageBufferSize)] BYTE* messageBuffer); HRESULT SendReceiveMessage([in] Windows.Gaming.Input.Custom.GipMessageClass messageClass, [in] BYTE messageId, [in] UINT32 __requestMessageBufferSize, [in] [size_is(__requestMessageBufferSize)] BYTE* requestMessageBuffer, [in] UINT32 __responseMessageBufferSize, [out] [size_is(__responseMessageBufferSize)] BYTE* responseMessageBuffer); HRESULT UpdateFirmwareAsync([in] Windows.Storage.Streams.IInputStream* firmwareImage, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress** result); } [contract(Windows.Foundation.UniversalApiContract, 4.0)] [uuid(F754C322-182D-40E4-A126-FCEE4FFA1E31)] interface IHidGameControllerInputSink : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerInputSink { HRESULT OnInputReportReceived([in] UINT64 timestamp, [in] BYTE reportId, [in] UINT32 __reportBufferSize, [in] [size_is(__reportBufferSize)] BYTE* reportBuffer); } [contract(Windows.Foundation.UniversalApiContract, 4.0)] [exclusiveto(Windows.Gaming.Input.Custom.HidGameControllerProvider)] [uuid(95CE3AF4-ABF0-4B68-A081-3B7DE73FF0E7)] interface IHidGameControllerProvider : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerProvider { [propget] HRESULT UsageId([out] [retval] UINT16* value); [propget] HRESULT UsagePage([out] [retval] UINT16* value); HRESULT GetFeatureReport([in] BYTE reportId, [in] UINT32 __reportBufferSize, [out] [size_is(__reportBufferSize)] BYTE* reportBuffer); HRESULT SendFeatureReport([in] BYTE reportId, [in] UINT32 __reportBufferSize, [in] [size_is(__reportBufferSize)] BYTE* reportBuffer); HRESULT SendOutputReport([in] BYTE reportId, [in] UINT32 __reportBufferSize, [in] [size_is(__reportBufferSize)] BYTE* reportBuffer); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [uuid(B2AC1D95-6ECB-42B3-8AAB-025401CA4712)] interface IXusbGameControllerInputSink : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerInputSink { HRESULT OnInputReceived([in] UINT64 timestamp, [in] BYTE reportId, [in] UINT32 __inputBufferSize, [in] [size_is(__inputBufferSize)] BYTE* inputBuffer); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [exclusiveto(Windows.Gaming.Input.Custom.XusbGameControllerProvider)] [uuid(6E2971EB-0EFB-48B4-808B-837643B2F216)] interface IXusbGameControllerProvider : IInspectable requires Windows.Gaming.Input.Custom.IGameControllerProvider { HRESULT SetVibration([in] DOUBLE lowFrequencyMotorSpeed, [in] DOUBLE highFrequencyMotorSpeed); } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [marshaling_behavior(agile)] [static(Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics, Windows.Foundation.UniversalApiContract, 3.0)] [static(Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics2, Windows.Foundation.UniversalApiContract, 4.0)] [threading(both)] runtimeclass GameControllerFactoryManager { } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [marshaling_behavior(agile)] [threading(both)] runtimeclass GipFirmwareUpdateResult { [default] interface Windows.Gaming.Input.Custom.IGipFirmwareUpdateResult; } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [marshaling_behavior(agile)] [threading(both)] runtimeclass GipGameControllerProvider { [default] interface Windows.Gaming.Input.Custom.IGipGameControllerProvider; interface Windows.Gaming.Input.Custom.IGameControllerProvider; } [contract(Windows.Foundation.UniversalApiContract, 4.0)] [marshaling_behavior(agile)] [threading(both)] runtimeclass HidGameControllerProvider { [default] interface Windows.Gaming.Input.Custom.IHidGameControllerProvider; interface Windows.Gaming.Input.Custom.IGameControllerProvider; } [contract(Windows.Foundation.UniversalApiContract, 3.0)] [marshaling_behavior(agile)] [threading(both)] runtimeclass XusbGameControllerProvider { [default] interface Windows.Gaming.Input.Custom.IXusbGameControllerProvider; interface Windows.Gaming.Input.Custom.IGameControllerProvider; } } } } }