// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Devices_Usb_0_H #define WINRT_Windows_Devices_Usb_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct EventRegistrationToken; struct IAsyncAction; template struct WINRT_IMPL_EMPTY_BASES IReference; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; } WINRT_EXPORT namespace winrt::Windows::Storage::Streams { struct IBuffer; struct IInputStream; struct IOutputStream; } WINRT_EXPORT namespace winrt::Windows::Devices::Usb { enum class UsbControlRecipient : int32_t { Device = 0, SpecifiedInterface = 1, Endpoint = 2, Other = 3, DefaultInterface = 4, }; enum class UsbControlTransferType : int32_t { Standard = 0, Class = 1, Vendor = 2, }; enum class UsbEndpointType : int32_t { Control = 0, Isochronous = 1, Bulk = 2, Interrupt = 3, }; enum class UsbReadOptions : uint32_t { None = 0, AutoClearStall = 0x1, OverrideAutomaticBufferManagement = 0x2, IgnoreShortPacket = 0x4, AllowPartialReads = 0x8, }; enum class UsbTransferDirection : int32_t { Out = 0, In = 1, }; enum class UsbWriteOptions : uint32_t { None = 0, AutoClearStall = 0x1, ShortPacketTerminate = 0x2, }; struct IUsbBulkInEndpointDescriptor; struct IUsbBulkInPipe; struct IUsbBulkOutEndpointDescriptor; struct IUsbBulkOutPipe; struct IUsbConfiguration; struct IUsbConfigurationDescriptor; struct IUsbConfigurationDescriptorStatics; struct IUsbControlRequestType; struct IUsbDescriptor; struct IUsbDevice; struct IUsbDeviceClass; struct IUsbDeviceClasses; struct IUsbDeviceClassesStatics; struct IUsbDeviceDescriptor; struct IUsbDeviceStatics; struct IUsbEndpointDescriptor; struct IUsbEndpointDescriptorStatics; struct IUsbInterface; struct IUsbInterfaceDescriptor; struct IUsbInterfaceDescriptorStatics; struct IUsbInterfaceSetting; struct IUsbInterruptInEndpointDescriptor; struct IUsbInterruptInEventArgs; struct IUsbInterruptInPipe; struct IUsbInterruptOutEndpointDescriptor; struct IUsbInterruptOutPipe; struct IUsbSetupPacket; struct IUsbSetupPacketFactory; struct UsbBulkInEndpointDescriptor; struct UsbBulkInPipe; struct UsbBulkOutEndpointDescriptor; struct UsbBulkOutPipe; struct UsbConfiguration; struct UsbConfigurationDescriptor; struct UsbControlRequestType; struct UsbDescriptor; struct UsbDevice; struct UsbDeviceClass; struct UsbDeviceClasses; struct UsbDeviceDescriptor; struct UsbEndpointDescriptor; struct UsbInterface; struct UsbInterfaceDescriptor; struct UsbInterfaceSetting; struct UsbInterruptInEndpointDescriptor; struct UsbInterruptInEventArgs; struct UsbInterruptInPipe; struct UsbInterruptOutEndpointDescriptor; struct UsbInterruptOutPipe; struct UsbSetupPacket; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbBulkInEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbBulkInPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbBulkOutEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbBulkOutPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbConfiguration"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbConfigurationDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbControlRequestType"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbDevice"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbDeviceClass"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbDeviceClasses"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbDeviceDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterface"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterfaceDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterfaceSetting"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterruptInEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterruptInEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterruptInPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbInterruptOutPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbSetupPacket"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbControlRecipient"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbControlTransferType"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbEndpointType"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbReadOptions"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbTransferDirection"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.UsbWriteOptions"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbBulkInEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbBulkInPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbBulkOutEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbBulkOutPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbConfiguration"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbConfigurationDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbConfigurationDescriptorStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbControlRequestType"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDevice"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDeviceClass"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDeviceClasses"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDeviceClassesStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDeviceDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbDeviceStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbEndpointDescriptorStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterface"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterfaceDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterfaceDescriptorStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterfaceSetting"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterruptInEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterruptInEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterruptInPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterruptOutEndpointDescriptor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbInterruptOutPipe"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbSetupPacket"; template <> inline constexpr auto& name_v = L"Windows.Devices.Usb.IUsbSetupPacketFactory"; template <> inline constexpr guid guid_v{ 0x3C6E4846,0x06CF,0x42A9,{ 0x9D,0xC2,0x97,0x1C,0x1B,0x14,0xB6,0xE3 } }; // 3C6E4846-06CF-42A9-9DC2-971C1B14B6E3 template <> inline constexpr guid guid_v{ 0xF01D2D3B,0x4548,0x4D50,{ 0xB3,0x26,0xD8,0x2C,0xDA,0xBE,0x12,0x20 } }; // F01D2D3B-4548-4D50-B326-D82CDABE1220 template <> inline constexpr guid guid_v{ 0x2820847A,0xFFEE,0x4F60,{ 0x9B,0xE1,0x95,0x6C,0xAC,0x3E,0xCB,0x65 } }; // 2820847A-FFEE-4F60-9BE1-956CAC3ECB65 template <> inline constexpr guid guid_v{ 0xA8E9EE6E,0x0115,0x45AA,{ 0x8B,0x21,0x37,0xB2,0x25,0xBC,0xCE,0xE7 } }; // A8E9EE6E-0115-45AA-8B21-37B225BCCEE7 template <> inline constexpr guid guid_v{ 0x68177429,0x36A9,0x46D7,{ 0xB8,0x73,0xFC,0x68,0x92,0x51,0xEC,0x30 } }; // 68177429-36A9-46D7-B873-FC689251EC30 template <> inline constexpr guid guid_v{ 0xF2176D92,0xB442,0x407A,{ 0x82,0x07,0x7D,0x64,0x6C,0x03,0x85,0xF3 } }; // F2176D92-B442-407A-8207-7D646C0385F3 template <> inline constexpr guid guid_v{ 0x424CED93,0xE740,0x40A1,{ 0x92,0xBD,0xDA,0x12,0x0E,0xA0,0x49,0x14 } }; // 424CED93-E740-40A1-92BD-DA120EA04914 template <> inline constexpr guid guid_v{ 0x8E9465A6,0xD73D,0x46DE,{ 0x94,0xBE,0xAA,0xE7,0xF0,0x7C,0x0F,0x5C } }; // 8E9465A6-D73D-46DE-94BE-AAE7F07C0F5C template <> inline constexpr guid guid_v{ 0x0A89F216,0x5F9D,0x4874,{ 0x89,0x04,0xDA,0x9A,0xD3,0xF5,0x52,0x8F } }; // 0A89F216-5F9D-4874-8904-DA9AD3F5528F template <> inline constexpr guid guid_v{ 0x5249B992,0xC456,0x44D5,{ 0xAD,0x5E,0x24,0xF5,0xA0,0x89,0xF6,0x3B } }; // 5249B992-C456-44D5-AD5E-24F5A089F63B template <> inline constexpr guid guid_v{ 0x051942F9,0x845E,0x47EB,{ 0xB1,0x2A,0x38,0xF2,0xF6,0x17,0xAF,0xE7 } }; // 051942F9-845E-47EB-B12A-38F2F617AFE7 template <> inline constexpr guid guid_v{ 0x686F955D,0x9B92,0x4B30,{ 0x97,0x81,0xC2,0x2C,0x55,0xAC,0x35,0xCB } }; // 686F955D-9B92-4B30-9781-C22C55AC35CB template <> inline constexpr guid guid_v{ 0xB20B0527,0xC580,0x4599,{ 0xA1,0x65,0x98,0x1B,0x4F,0xD0,0x32,0x30 } }; // B20B0527-C580-4599-A165-981B4FD03230 template <> inline constexpr guid guid_v{ 0x1F48D1F6,0xBA97,0x4322,{ 0xB9,0x2C,0xB5,0xB1,0x89,0x21,0x65,0x88 } }; // 1F48D1F6-BA97-4322-B92C-B5B189216588 template <> inline constexpr guid guid_v{ 0x066B85A2,0x09B7,0x4446,{ 0x85,0x02,0x6F,0xE6,0xDC,0xAA,0x73,0x09 } }; // 066B85A2-09B7-4446-8502-6FE6DCAA7309 template <> inline constexpr guid guid_v{ 0x6B4862D9,0x8DF7,0x4B40,{ 0xAC,0x83,0x57,0x8F,0x13,0x9F,0x05,0x75 } }; // 6B4862D9-8DF7-4B40-AC83-578F139F0575 template <> inline constexpr guid guid_v{ 0xC890B201,0x9A6A,0x495E,{ 0xA8,0x2C,0x29,0x5B,0x9E,0x70,0x81,0x06 } }; // C890B201-9A6A-495E-A82C-295B9E708106 template <> inline constexpr guid guid_v{ 0xA0322B95,0x7F47,0x48AB,{ 0xA7,0x27,0x67,0x8C,0x25,0xBE,0x21,0x12 } }; // A0322B95-7F47-48AB-A727-678C25BE2112 template <> inline constexpr guid guid_v{ 0x199670C7,0xB7EE,0x4F90,{ 0x8C,0xD5,0x94,0xA2,0xE2,0x57,0x59,0x8A } }; // 199670C7-B7EE-4F90-8CD5-94A2E257598A template <> inline constexpr guid guid_v{ 0xE34A9FF5,0x77D6,0x48B6,{ 0xB0,0xBE,0x16,0xC6,0x42,0x23,0x16,0xFE } }; // E34A9FF5-77D6-48B6-B0BE-16C6422316FE template <> inline constexpr guid guid_v{ 0x1827BBA7,0x8DA7,0x4AF7,{ 0x8F,0x4C,0x7F,0x30,0x32,0xE7,0x81,0xF5 } }; // 1827BBA7-8DA7-4AF7-8F4C-7F3032E781F5 template <> inline constexpr guid guid_v{ 0xC0528967,0xC911,0x4C3A,{ 0x86,0xB2,0x41,0x9C,0x2D,0xA8,0x90,0x39 } }; // C0528967-C911-4C3A-86B2-419C2DA89039 template <> inline constexpr guid guid_v{ 0xB7B04092,0x1418,0x4936,{ 0x82,0x09,0x29,0x9C,0xF5,0x60,0x55,0x83 } }; // B7B04092-1418-4936-8209-299CF5605583 template <> inline constexpr guid guid_v{ 0xFA007116,0x84D7,0x48C7,{ 0x8A,0x3F,0x4C,0x0B,0x23,0x5F,0x2E,0xA6 } }; // FA007116-84D7-48C7-8A3F-4C0B235F2EA6 template <> inline constexpr guid guid_v{ 0xCC9FED81,0x10CA,0x4533,{ 0x95,0x2D,0x9E,0x27,0x83,0x41,0xE8,0x0F } }; // CC9FED81-10CA-4533-952D-9E278341E80F template <> inline constexpr guid guid_v{ 0xE984C8A9,0xAAF9,0x49D0,{ 0xB9,0x6C,0xF6,0x61,0xAB,0x4A,0x7F,0x95 } }; // E984C8A9-AAF9-49D0-B96C-F661AB4A7F95 template <> inline constexpr guid guid_v{ 0x104BA132,0xC78F,0x4C51,{ 0xB6,0x54,0xE4,0x9D,0x02,0xF2,0xCB,0x03 } }; // 104BA132-C78F-4C51-B654-E49D02F2CB03 template <> inline constexpr guid guid_v{ 0xC9257D50,0x1B2E,0x4A41,{ 0xA2,0xA7,0x33,0x8F,0x0C,0xEF,0x3C,0x14 } }; // C9257D50-1B2E-4A41-A2A7-338F0CEF3C14 template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbBulkInPipe; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbBulkOutPipe; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbConfiguration; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbControlRequestType; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbDevice; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbDeviceClass; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbDeviceClasses; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbDeviceDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbEndpointDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterface; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterfaceSetting; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInPipe; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbInterruptOutPipe; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Usb::IUsbSetupPacket; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_MaxPacketSize(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Pipe(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_MaxTransferSizeBytes(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall ClearStallAsync(void**) noexcept = 0; virtual int32_t __stdcall put_ReadOptions(uint32_t) noexcept = 0; virtual int32_t __stdcall get_ReadOptions(uint32_t*) noexcept = 0; virtual int32_t __stdcall FlushBuffer() noexcept = 0; virtual int32_t __stdcall get_InputStream(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_MaxPacketSize(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Pipe(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_EndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall ClearStallAsync(void**) noexcept = 0; virtual int32_t __stdcall put_WriteOptions(uint32_t) noexcept = 0; virtual int32_t __stdcall get_WriteOptions(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_OutputStream(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_UsbInterfaces(void**) noexcept = 0; virtual int32_t __stdcall get_ConfigurationDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_Descriptors(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ConfigurationValue(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_MaxPowerMilliamps(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_SelfPowered(bool*) noexcept = 0; virtual int32_t __stdcall get_RemoteWakeup(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall TryParse(void*, void**, bool*) noexcept = 0; virtual int32_t __stdcall Parse(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Direction(int32_t*) noexcept = 0; virtual int32_t __stdcall put_Direction(int32_t) noexcept = 0; virtual int32_t __stdcall get_ControlTransferType(int32_t*) noexcept = 0; virtual int32_t __stdcall put_ControlTransferType(int32_t) noexcept = 0; virtual int32_t __stdcall get_Recipient(int32_t*) noexcept = 0; virtual int32_t __stdcall put_Recipient(int32_t) noexcept = 0; virtual int32_t __stdcall get_AsByte(uint8_t*) noexcept = 0; virtual int32_t __stdcall put_AsByte(uint8_t) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Length(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_DescriptorType(uint8_t*) noexcept = 0; virtual int32_t __stdcall ReadDescriptorBuffer(void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall SendControlOutTransferAsync(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall SendControlOutTransferAsyncNoBuffer(void*, void**) noexcept = 0; virtual int32_t __stdcall SendControlInTransferAsync(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall SendControlInTransferAsyncNoBuffer(void*, void**) noexcept = 0; virtual int32_t __stdcall get_DefaultInterface(void**) noexcept = 0; virtual int32_t __stdcall get_DeviceDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_Configuration(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ClassCode(uint8_t*) noexcept = 0; virtual int32_t __stdcall put_ClassCode(uint8_t) noexcept = 0; virtual int32_t __stdcall get_SubclassCode(void**) noexcept = 0; virtual int32_t __stdcall put_SubclassCode(void*) noexcept = 0; virtual int32_t __stdcall get_ProtocolCode(void**) noexcept = 0; virtual int32_t __stdcall put_ProtocolCode(void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_CdcControl(void**) noexcept = 0; virtual int32_t __stdcall get_Physical(void**) noexcept = 0; virtual int32_t __stdcall get_PersonalHealthcare(void**) noexcept = 0; virtual int32_t __stdcall get_ActiveSync(void**) noexcept = 0; virtual int32_t __stdcall get_PalmSync(void**) noexcept = 0; virtual int32_t __stdcall get_DeviceFirmwareUpdate(void**) noexcept = 0; virtual int32_t __stdcall get_Irda(void**) noexcept = 0; virtual int32_t __stdcall get_Measurement(void**) noexcept = 0; virtual int32_t __stdcall get_VendorSpecific(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_BcdUsb(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_MaxPacketSize0(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_VendorId(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_ProductId(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_BcdDeviceRevision(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_NumberOfConfigurations(uint8_t*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetDeviceSelector(uint32_t, uint32_t, winrt::guid, void**) noexcept = 0; virtual int32_t __stdcall GetDeviceSelectorGuidOnly(winrt::guid, void**) noexcept = 0; virtual int32_t __stdcall GetDeviceSelectorVidPidOnly(uint32_t, uint32_t, void**) noexcept = 0; virtual int32_t __stdcall GetDeviceClassSelector(void*, void**) noexcept = 0; virtual int32_t __stdcall FromIdAsync(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_EndpointNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Direction(int32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointType(int32_t*) noexcept = 0; virtual int32_t __stdcall get_AsBulkInEndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_AsInterruptInEndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_AsBulkOutEndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_AsInterruptOutEndpointDescriptor(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall TryParse(void*, void**, bool*) noexcept = 0; virtual int32_t __stdcall Parse(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_BulkInPipes(void**) noexcept = 0; virtual int32_t __stdcall get_InterruptInPipes(void**) noexcept = 0; virtual int32_t __stdcall get_BulkOutPipes(void**) noexcept = 0; virtual int32_t __stdcall get_InterruptOutPipes(void**) noexcept = 0; virtual int32_t __stdcall get_InterfaceSettings(void**) noexcept = 0; virtual int32_t __stdcall get_InterfaceNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Descriptors(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ClassCode(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_SubclassCode(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_ProtocolCode(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_AlternateSettingNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_InterfaceNumber(uint8_t*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall TryParse(void*, void**, bool*) noexcept = 0; virtual int32_t __stdcall Parse(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_BulkInEndpoints(void**) noexcept = 0; virtual int32_t __stdcall get_InterruptInEndpoints(void**) noexcept = 0; virtual int32_t __stdcall get_BulkOutEndpoints(void**) noexcept = 0; virtual int32_t __stdcall get_InterruptOutEndpoints(void**) noexcept = 0; virtual int32_t __stdcall get_Selected(bool*) noexcept = 0; virtual int32_t __stdcall SelectSettingAsync(void**) noexcept = 0; virtual int32_t __stdcall get_InterfaceDescriptor(void**) noexcept = 0; virtual int32_t __stdcall get_Descriptors(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_MaxPacketSize(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Interval(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Pipe(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_InterruptData(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_EndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall ClearStallAsync(void**) noexcept = 0; virtual int32_t __stdcall add_DataReceived(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_DataReceived(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_MaxPacketSize(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_EndpointNumber(uint8_t*) noexcept = 0; virtual int32_t __stdcall get_Interval(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Pipe(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_EndpointDescriptor(void**) noexcept = 0; virtual int32_t __stdcall ClearStallAsync(void**) noexcept = 0; virtual int32_t __stdcall put_WriteOptions(uint32_t) noexcept = 0; virtual int32_t __stdcall get_WriteOptions(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_OutputStream(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_RequestType(void**) noexcept = 0; virtual int32_t __stdcall put_RequestType(void*) noexcept = 0; virtual int32_t __stdcall get_Request(uint8_t*) noexcept = 0; virtual int32_t __stdcall put_Request(uint8_t) noexcept = 0; virtual int32_t __stdcall get_Value(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_Value(uint32_t) noexcept = 0; virtual int32_t __stdcall get_Index(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_Index(uint32_t) noexcept = 0; virtual int32_t __stdcall get_Length(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_Length(uint32_t) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateWithEightByteBuffer(void*, void**) noexcept = 0; }; }; template struct consume_Windows_Devices_Usb_IUsbBulkInEndpointDescriptor { [[nodiscard]] auto MaxPacketSize() const; [[nodiscard]] auto EndpointNumber() const; [[nodiscard]] auto Pipe() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbBulkInEndpointDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbBulkInPipe { [[nodiscard]] auto MaxTransferSizeBytes() const; [[nodiscard]] auto EndpointDescriptor() const; auto ClearStallAsync() const; auto ReadOptions(winrt::Windows::Devices::Usb::UsbReadOptions const& value) const; [[nodiscard]] auto ReadOptions() const; auto FlushBuffer() const; [[nodiscard]] auto InputStream() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbBulkInPipe; }; template struct consume_Windows_Devices_Usb_IUsbBulkOutEndpointDescriptor { [[nodiscard]] auto MaxPacketSize() const; [[nodiscard]] auto EndpointNumber() const; [[nodiscard]] auto Pipe() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbBulkOutEndpointDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbBulkOutPipe { [[nodiscard]] auto EndpointDescriptor() const; auto ClearStallAsync() const; auto WriteOptions(winrt::Windows::Devices::Usb::UsbWriteOptions const& value) const; [[nodiscard]] auto WriteOptions() const; [[nodiscard]] auto OutputStream() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbBulkOutPipe; }; template struct consume_Windows_Devices_Usb_IUsbConfiguration { [[nodiscard]] auto UsbInterfaces() const; [[nodiscard]] auto ConfigurationDescriptor() const; [[nodiscard]] auto Descriptors() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbConfiguration; }; template struct consume_Windows_Devices_Usb_IUsbConfigurationDescriptor { [[nodiscard]] auto ConfigurationValue() const; [[nodiscard]] auto MaxPowerMilliamps() const; [[nodiscard]] auto SelfPowered() const; [[nodiscard]] auto RemoteWakeup() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbConfigurationDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbConfigurationDescriptorStatics { auto TryParse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor, winrt::Windows::Devices::Usb::UsbConfigurationDescriptor& parsed) const; auto Parse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbConfigurationDescriptorStatics; }; template struct consume_Windows_Devices_Usb_IUsbControlRequestType { [[nodiscard]] auto Direction() const; auto Direction(winrt::Windows::Devices::Usb::UsbTransferDirection const& value) const; [[nodiscard]] auto ControlTransferType() const; auto ControlTransferType(winrt::Windows::Devices::Usb::UsbControlTransferType const& value) const; [[nodiscard]] auto Recipient() const; auto Recipient(winrt::Windows::Devices::Usb::UsbControlRecipient const& value) const; [[nodiscard]] auto AsByte() const; auto AsByte(uint8_t value) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbControlRequestType; }; template struct consume_Windows_Devices_Usb_IUsbDescriptor { [[nodiscard]] auto Length() const; [[nodiscard]] auto DescriptorType() const; auto ReadDescriptorBuffer(winrt::Windows::Storage::Streams::IBuffer const& buffer) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbDevice { auto SendControlOutTransferAsync(winrt::Windows::Devices::Usb::UsbSetupPacket const& setupPacket, winrt::Windows::Storage::Streams::IBuffer const& buffer) const; auto SendControlOutTransferAsync(winrt::Windows::Devices::Usb::UsbSetupPacket const& setupPacket) const; auto SendControlInTransferAsync(winrt::Windows::Devices::Usb::UsbSetupPacket const& setupPacket, winrt::Windows::Storage::Streams::IBuffer const& buffer) const; auto SendControlInTransferAsync(winrt::Windows::Devices::Usb::UsbSetupPacket const& setupPacket) const; [[nodiscard]] auto DefaultInterface() const; [[nodiscard]] auto DeviceDescriptor() const; [[nodiscard]] auto Configuration() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDevice; }; template struct consume_Windows_Devices_Usb_IUsbDeviceClass { [[nodiscard]] auto ClassCode() const; auto ClassCode(uint8_t value) const; [[nodiscard]] auto SubclassCode() const; auto SubclassCode(winrt::Windows::Foundation::IReference const& value) const; [[nodiscard]] auto ProtocolCode() const; auto ProtocolCode(winrt::Windows::Foundation::IReference const& value) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDeviceClass; }; template struct consume_Windows_Devices_Usb_IUsbDeviceClasses { }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDeviceClasses; }; template struct consume_Windows_Devices_Usb_IUsbDeviceClassesStatics { [[nodiscard]] auto CdcControl() const; [[nodiscard]] auto Physical() const; [[nodiscard]] auto PersonalHealthcare() const; [[nodiscard]] auto ActiveSync() const; [[nodiscard]] auto PalmSync() const; [[nodiscard]] auto DeviceFirmwareUpdate() const; [[nodiscard]] auto Irda() const; [[nodiscard]] auto Measurement() const; [[nodiscard]] auto VendorSpecific() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDeviceClassesStatics; }; template struct consume_Windows_Devices_Usb_IUsbDeviceDescriptor { [[nodiscard]] auto BcdUsb() const; [[nodiscard]] auto MaxPacketSize0() const; [[nodiscard]] auto VendorId() const; [[nodiscard]] auto ProductId() const; [[nodiscard]] auto BcdDeviceRevision() const; [[nodiscard]] auto NumberOfConfigurations() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDeviceDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbDeviceStatics { auto GetDeviceSelector(uint32_t vendorId, uint32_t productId, winrt::guid const& winUsbInterfaceClass) const; auto GetDeviceSelector(winrt::guid const& winUsbInterfaceClass) const; auto GetDeviceSelector(uint32_t vendorId, uint32_t productId) const; auto GetDeviceClassSelector(winrt::Windows::Devices::Usb::UsbDeviceClass const& usbClass) const; auto FromIdAsync(param::hstring const& deviceId) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbDeviceStatics; }; template struct consume_Windows_Devices_Usb_IUsbEndpointDescriptor { [[nodiscard]] auto EndpointNumber() const; [[nodiscard]] auto Direction() const; [[nodiscard]] auto EndpointType() const; [[nodiscard]] auto AsBulkInEndpointDescriptor() const; [[nodiscard]] auto AsInterruptInEndpointDescriptor() const; [[nodiscard]] auto AsBulkOutEndpointDescriptor() const; [[nodiscard]] auto AsInterruptOutEndpointDescriptor() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbEndpointDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbEndpointDescriptorStatics { auto TryParse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor, winrt::Windows::Devices::Usb::UsbEndpointDescriptor& parsed) const; auto Parse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbEndpointDescriptorStatics; }; template struct consume_Windows_Devices_Usb_IUsbInterface { [[nodiscard]] auto BulkInPipes() const; [[nodiscard]] auto InterruptInPipes() const; [[nodiscard]] auto BulkOutPipes() const; [[nodiscard]] auto InterruptOutPipes() const; [[nodiscard]] auto InterfaceSettings() const; [[nodiscard]] auto InterfaceNumber() const; [[nodiscard]] auto Descriptors() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterface; }; template struct consume_Windows_Devices_Usb_IUsbInterfaceDescriptor { [[nodiscard]] auto ClassCode() const; [[nodiscard]] auto SubclassCode() const; [[nodiscard]] auto ProtocolCode() const; [[nodiscard]] auto AlternateSettingNumber() const; [[nodiscard]] auto InterfaceNumber() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterfaceDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbInterfaceDescriptorStatics { auto TryParse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor, winrt::Windows::Devices::Usb::UsbInterfaceDescriptor& parsed) const; auto Parse(winrt::Windows::Devices::Usb::UsbDescriptor const& descriptor) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterfaceDescriptorStatics; }; template struct consume_Windows_Devices_Usb_IUsbInterfaceSetting { [[nodiscard]] auto BulkInEndpoints() const; [[nodiscard]] auto InterruptInEndpoints() const; [[nodiscard]] auto BulkOutEndpoints() const; [[nodiscard]] auto InterruptOutEndpoints() const; [[nodiscard]] auto Selected() const; auto SelectSettingAsync() const; [[nodiscard]] auto InterfaceDescriptor() const; [[nodiscard]] auto Descriptors() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterfaceSetting; }; template struct consume_Windows_Devices_Usb_IUsbInterruptInEndpointDescriptor { [[nodiscard]] auto MaxPacketSize() const; [[nodiscard]] auto EndpointNumber() const; [[nodiscard]] auto Interval() const; [[nodiscard]] auto Pipe() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterruptInEndpointDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbInterruptInEventArgs { [[nodiscard]] auto InterruptData() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterruptInEventArgs; }; template struct consume_Windows_Devices_Usb_IUsbInterruptInPipe { [[nodiscard]] auto EndpointDescriptor() const; auto ClearStallAsync() const; auto DataReceived(winrt::Windows::Foundation::TypedEventHandler const& handler) const; using DataReceived_revoker = impl::event_revoker::remove_DataReceived>; [[nodiscard]] auto DataReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const; auto DataReceived(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterruptInPipe; }; template struct consume_Windows_Devices_Usb_IUsbInterruptOutEndpointDescriptor { [[nodiscard]] auto MaxPacketSize() const; [[nodiscard]] auto EndpointNumber() const; [[nodiscard]] auto Interval() const; [[nodiscard]] auto Pipe() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterruptOutEndpointDescriptor; }; template struct consume_Windows_Devices_Usb_IUsbInterruptOutPipe { [[nodiscard]] auto EndpointDescriptor() const; auto ClearStallAsync() const; auto WriteOptions(winrt::Windows::Devices::Usb::UsbWriteOptions const& value) const; [[nodiscard]] auto WriteOptions() const; [[nodiscard]] auto OutputStream() const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbInterruptOutPipe; }; template struct consume_Windows_Devices_Usb_IUsbSetupPacket { [[nodiscard]] auto RequestType() const; auto RequestType(winrt::Windows::Devices::Usb::UsbControlRequestType const& value) const; [[nodiscard]] auto Request() const; auto Request(uint8_t value) const; [[nodiscard]] auto Value() const; auto Value(uint32_t value) const; [[nodiscard]] auto Index() const; auto Index(uint32_t value) const; [[nodiscard]] auto Length() const; auto Length(uint32_t value) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbSetupPacket; }; template struct consume_Windows_Devices_Usb_IUsbSetupPacketFactory { auto CreateWithEightByteBuffer(winrt::Windows::Storage::Streams::IBuffer const& eightByteBuffer) const; }; template <> struct consume { template using type = consume_Windows_Devices_Usb_IUsbSetupPacketFactory; }; } #endif