From 23f282b3bba0c98e8b0d69e5d8e2488268f1965d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 28 Feb 2022 09:44:04 +0100 Subject: [PATCH] include: Add Windows.Gaming.Input.Custom.IGameControllerProvider declaration. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Bernon Signed-off-by: Alexandre Julliard --- include/Makefile.in | 1 + include/windows.gaming.input.custom.idl | 56 +++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 include/windows.gaming.input.custom.idl diff --git a/include/Makefile.in b/include/Makefile.in index 8a8fddddada..2bb8cd672a7 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -779,6 +779,7 @@ SOURCES = \ windows.devices.haptics.idl \ windows.foundation.collections.idl \ windows.foundation.idl \ + windows.gaming.input.custom.idl \ windows.gaming.input.forcefeedback.idl \ windows.gaming.input.idl \ windows.globalization.idl \ diff --git a/include/windows.gaming.input.custom.idl b/include/windows.gaming.input.custom.idl new file mode 100644 index 00000000000..d24f07f02e1 --- /dev/null +++ b/include/windows.gaming.input.custom.idl @@ -0,0 +1,56 @@ +/* + * Copyright 2022 Rémi Bernon for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +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"; + +namespace Windows.Gaming.Input.Custom { + typedef struct GameControllerVersionInfo GameControllerVersionInfo; + interface IGameControllerProvider; + + [contract(Windows.Foundation.UniversalApiContract, 3.0)] + struct GameControllerVersionInfo + { + UINT16 Major; + UINT16 Minor; + UINT16 Build; + UINT16 Revision; + }; + + [ + 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); + } +}