Files
2025-07-09 08:58:00 -07:00

934 lines
58 KiB
C++

// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.250303.1
#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 <typename T> struct WINRT_IMPL_EMPTY_BASES IReference;
template <typename TSender, typename TResult> 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<winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbBulkInPipe>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbBulkOutPipe>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbConfiguration>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbControlRequestType>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDevice>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDeviceClass>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDeviceClasses>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDeviceClassesStatics>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDeviceDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbDeviceStatics>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbEndpointDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbEndpointDescriptorStatics>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterface>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterfaceSetting>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterruptInPipe>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbInterruptOutPipe>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbSetupPacket>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::IUsbSetupPacketFactory>{ using type = interface_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbBulkInEndpointDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbBulkInPipe>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbBulkOutPipe>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbConfiguration>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbConfigurationDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbControlRequestType>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbDevice>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbDeviceClass>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbDeviceClasses>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbDeviceDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbEndpointDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterface>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterfaceDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterfaceSetting>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterruptInEventArgs>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterruptInPipe>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbInterruptOutPipe>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbSetupPacket>{ using type = class_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbControlRecipient>{ using type = enum_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbControlTransferType>{ using type = enum_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbEndpointType>{ using type = enum_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbReadOptions>{ using type = enum_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbTransferDirection>{ using type = enum_category; };
template <> struct category<winrt::Windows::Devices::Usb::UsbWriteOptions>{ using type = enum_category; };
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbBulkInEndpointDescriptor> = L"Windows.Devices.Usb.UsbBulkInEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbBulkInPipe> = L"Windows.Devices.Usb.UsbBulkInPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor> = L"Windows.Devices.Usb.UsbBulkOutEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbBulkOutPipe> = L"Windows.Devices.Usb.UsbBulkOutPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbConfiguration> = L"Windows.Devices.Usb.UsbConfiguration";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbConfigurationDescriptor> = L"Windows.Devices.Usb.UsbConfigurationDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbControlRequestType> = L"Windows.Devices.Usb.UsbControlRequestType";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbDescriptor> = L"Windows.Devices.Usb.UsbDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbDevice> = L"Windows.Devices.Usb.UsbDevice";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbDeviceClass> = L"Windows.Devices.Usb.UsbDeviceClass";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbDeviceClasses> = L"Windows.Devices.Usb.UsbDeviceClasses";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbDeviceDescriptor> = L"Windows.Devices.Usb.UsbDeviceDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbEndpointDescriptor> = L"Windows.Devices.Usb.UsbEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterface> = L"Windows.Devices.Usb.UsbInterface";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterfaceDescriptor> = L"Windows.Devices.Usb.UsbInterfaceDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterfaceSetting> = L"Windows.Devices.Usb.UsbInterfaceSetting";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor> = L"Windows.Devices.Usb.UsbInterruptInEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterruptInEventArgs> = L"Windows.Devices.Usb.UsbInterruptInEventArgs";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterruptInPipe> = L"Windows.Devices.Usb.UsbInterruptInPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor> = L"Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbInterruptOutPipe> = L"Windows.Devices.Usb.UsbInterruptOutPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbSetupPacket> = L"Windows.Devices.Usb.UsbSetupPacket";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbControlRecipient> = L"Windows.Devices.Usb.UsbControlRecipient";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbControlTransferType> = L"Windows.Devices.Usb.UsbControlTransferType";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbEndpointType> = L"Windows.Devices.Usb.UsbEndpointType";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbReadOptions> = L"Windows.Devices.Usb.UsbReadOptions";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbTransferDirection> = L"Windows.Devices.Usb.UsbTransferDirection";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::UsbWriteOptions> = L"Windows.Devices.Usb.UsbWriteOptions";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor> = L"Windows.Devices.Usb.IUsbBulkInEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbBulkInPipe> = L"Windows.Devices.Usb.IUsbBulkInPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor> = L"Windows.Devices.Usb.IUsbBulkOutEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbBulkOutPipe> = L"Windows.Devices.Usb.IUsbBulkOutPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbConfiguration> = L"Windows.Devices.Usb.IUsbConfiguration";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor> = L"Windows.Devices.Usb.IUsbConfigurationDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics> = L"Windows.Devices.Usb.IUsbConfigurationDescriptorStatics";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbControlRequestType> = L"Windows.Devices.Usb.IUsbControlRequestType";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDescriptor> = L"Windows.Devices.Usb.IUsbDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDevice> = L"Windows.Devices.Usb.IUsbDevice";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDeviceClass> = L"Windows.Devices.Usb.IUsbDeviceClass";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDeviceClasses> = L"Windows.Devices.Usb.IUsbDeviceClasses";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDeviceClassesStatics> = L"Windows.Devices.Usb.IUsbDeviceClassesStatics";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDeviceDescriptor> = L"Windows.Devices.Usb.IUsbDeviceDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbDeviceStatics> = L"Windows.Devices.Usb.IUsbDeviceStatics";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbEndpointDescriptor> = L"Windows.Devices.Usb.IUsbEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbEndpointDescriptorStatics> = L"Windows.Devices.Usb.IUsbEndpointDescriptorStatics";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterface> = L"Windows.Devices.Usb.IUsbInterface";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor> = L"Windows.Devices.Usb.IUsbInterfaceDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics> = L"Windows.Devices.Usb.IUsbInterfaceDescriptorStatics";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterfaceSetting> = L"Windows.Devices.Usb.IUsbInterfaceSetting";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor> = L"Windows.Devices.Usb.IUsbInterruptInEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs> = L"Windows.Devices.Usb.IUsbInterruptInEventArgs";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterruptInPipe> = L"Windows.Devices.Usb.IUsbInterruptInPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor> = L"Windows.Devices.Usb.IUsbInterruptOutEndpointDescriptor";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbInterruptOutPipe> = L"Windows.Devices.Usb.IUsbInterruptOutPipe";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbSetupPacket> = L"Windows.Devices.Usb.IUsbSetupPacket";
template <> inline constexpr auto& name_v<winrt::Windows::Devices::Usb::IUsbSetupPacketFactory> = L"Windows.Devices.Usb.IUsbSetupPacketFactory";
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor>{ 0x3C6E4846,0x06CF,0x42A9,{ 0x9D,0xC2,0x97,0x1C,0x1B,0x14,0xB6,0xE3 } }; // 3C6E4846-06CF-42A9-9DC2-971C1B14B6E3
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbBulkInPipe>{ 0xF01D2D3B,0x4548,0x4D50,{ 0xB3,0x26,0xD8,0x2C,0xDA,0xBE,0x12,0x20 } }; // F01D2D3B-4548-4D50-B326-D82CDABE1220
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor>{ 0x2820847A,0xFFEE,0x4F60,{ 0x9B,0xE1,0x95,0x6C,0xAC,0x3E,0xCB,0x65 } }; // 2820847A-FFEE-4F60-9BE1-956CAC3ECB65
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbBulkOutPipe>{ 0xA8E9EE6E,0x0115,0x45AA,{ 0x8B,0x21,0x37,0xB2,0x25,0xBC,0xCE,0xE7 } }; // A8E9EE6E-0115-45AA-8B21-37B225BCCEE7
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbConfiguration>{ 0x68177429,0x36A9,0x46D7,{ 0xB8,0x73,0xFC,0x68,0x92,0x51,0xEC,0x30 } }; // 68177429-36A9-46D7-B873-FC689251EC30
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor>{ 0xF2176D92,0xB442,0x407A,{ 0x82,0x07,0x7D,0x64,0x6C,0x03,0x85,0xF3 } }; // F2176D92-B442-407A-8207-7D646C0385F3
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics>{ 0x424CED93,0xE740,0x40A1,{ 0x92,0xBD,0xDA,0x12,0x0E,0xA0,0x49,0x14 } }; // 424CED93-E740-40A1-92BD-DA120EA04914
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbControlRequestType>{ 0x8E9465A6,0xD73D,0x46DE,{ 0x94,0xBE,0xAA,0xE7,0xF0,0x7C,0x0F,0x5C } }; // 8E9465A6-D73D-46DE-94BE-AAE7F07C0F5C
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDescriptor>{ 0x0A89F216,0x5F9D,0x4874,{ 0x89,0x04,0xDA,0x9A,0xD3,0xF5,0x52,0x8F } }; // 0A89F216-5F9D-4874-8904-DA9AD3F5528F
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDevice>{ 0x5249B992,0xC456,0x44D5,{ 0xAD,0x5E,0x24,0xF5,0xA0,0x89,0xF6,0x3B } }; // 5249B992-C456-44D5-AD5E-24F5A089F63B
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDeviceClass>{ 0x051942F9,0x845E,0x47EB,{ 0xB1,0x2A,0x38,0xF2,0xF6,0x17,0xAF,0xE7 } }; // 051942F9-845E-47EB-B12A-38F2F617AFE7
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDeviceClasses>{ 0x686F955D,0x9B92,0x4B30,{ 0x97,0x81,0xC2,0x2C,0x55,0xAC,0x35,0xCB } }; // 686F955D-9B92-4B30-9781-C22C55AC35CB
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDeviceClassesStatics>{ 0xB20B0527,0xC580,0x4599,{ 0xA1,0x65,0x98,0x1B,0x4F,0xD0,0x32,0x30 } }; // B20B0527-C580-4599-A165-981B4FD03230
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDeviceDescriptor>{ 0x1F48D1F6,0xBA97,0x4322,{ 0xB9,0x2C,0xB5,0xB1,0x89,0x21,0x65,0x88 } }; // 1F48D1F6-BA97-4322-B92C-B5B189216588
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbDeviceStatics>{ 0x066B85A2,0x09B7,0x4446,{ 0x85,0x02,0x6F,0xE6,0xDC,0xAA,0x73,0x09 } }; // 066B85A2-09B7-4446-8502-6FE6DCAA7309
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbEndpointDescriptor>{ 0x6B4862D9,0x8DF7,0x4B40,{ 0xAC,0x83,0x57,0x8F,0x13,0x9F,0x05,0x75 } }; // 6B4862D9-8DF7-4B40-AC83-578F139F0575
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbEndpointDescriptorStatics>{ 0xC890B201,0x9A6A,0x495E,{ 0xA8,0x2C,0x29,0x5B,0x9E,0x70,0x81,0x06 } }; // C890B201-9A6A-495E-A82C-295B9E708106
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterface>{ 0xA0322B95,0x7F47,0x48AB,{ 0xA7,0x27,0x67,0x8C,0x25,0xBE,0x21,0x12 } }; // A0322B95-7F47-48AB-A727-678C25BE2112
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor>{ 0x199670C7,0xB7EE,0x4F90,{ 0x8C,0xD5,0x94,0xA2,0xE2,0x57,0x59,0x8A } }; // 199670C7-B7EE-4F90-8CD5-94A2E257598A
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics>{ 0xE34A9FF5,0x77D6,0x48B6,{ 0xB0,0xBE,0x16,0xC6,0x42,0x23,0x16,0xFE } }; // E34A9FF5-77D6-48B6-B0BE-16C6422316FE
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterfaceSetting>{ 0x1827BBA7,0x8DA7,0x4AF7,{ 0x8F,0x4C,0x7F,0x30,0x32,0xE7,0x81,0xF5 } }; // 1827BBA7-8DA7-4AF7-8F4C-7F3032E781F5
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor>{ 0xC0528967,0xC911,0x4C3A,{ 0x86,0xB2,0x41,0x9C,0x2D,0xA8,0x90,0x39 } }; // C0528967-C911-4C3A-86B2-419C2DA89039
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs>{ 0xB7B04092,0x1418,0x4936,{ 0x82,0x09,0x29,0x9C,0xF5,0x60,0x55,0x83 } }; // B7B04092-1418-4936-8209-299CF5605583
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterruptInPipe>{ 0xFA007116,0x84D7,0x48C7,{ 0x8A,0x3F,0x4C,0x0B,0x23,0x5F,0x2E,0xA6 } }; // FA007116-84D7-48C7-8A3F-4C0B235F2EA6
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor>{ 0xCC9FED81,0x10CA,0x4533,{ 0x95,0x2D,0x9E,0x27,0x83,0x41,0xE8,0x0F } }; // CC9FED81-10CA-4533-952D-9E278341E80F
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbInterruptOutPipe>{ 0xE984C8A9,0xAAF9,0x49D0,{ 0xB9,0x6C,0xF6,0x61,0xAB,0x4A,0x7F,0x95 } }; // E984C8A9-AAF9-49D0-B96C-F661AB4A7F95
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbSetupPacket>{ 0x104BA132,0xC78F,0x4C51,{ 0xB6,0x54,0xE4,0x9D,0x02,0xF2,0xCB,0x03 } }; // 104BA132-C78F-4C51-B654-E49D02F2CB03
template <> inline constexpr guid guid_v<winrt::Windows::Devices::Usb::IUsbSetupPacketFactory>{ 0xC9257D50,0x1B2E,0x4A41,{ 0xA2,0xA7,0x33,0x8F,0x0C,0xEF,0x3C,0x14 } }; // C9257D50-1B2E-4A41-A2A7-338F0CEF3C14
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbBulkInEndpointDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbBulkInPipe>{ using type = winrt::Windows::Devices::Usb::IUsbBulkInPipe; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbBulkOutPipe>{ using type = winrt::Windows::Devices::Usb::IUsbBulkOutPipe; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbConfiguration>{ using type = winrt::Windows::Devices::Usb::IUsbConfiguration; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbConfigurationDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbControlRequestType>{ using type = winrt::Windows::Devices::Usb::IUsbControlRequestType; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbDevice>{ using type = winrt::Windows::Devices::Usb::IUsbDevice; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbDeviceClass>{ using type = winrt::Windows::Devices::Usb::IUsbDeviceClass; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbDeviceClasses>{ using type = winrt::Windows::Devices::Usb::IUsbDeviceClasses; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbDeviceDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbDeviceDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbEndpointDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbEndpointDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterface>{ using type = winrt::Windows::Devices::Usb::IUsbInterface; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterfaceDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterfaceSetting>{ using type = winrt::Windows::Devices::Usb::IUsbInterfaceSetting; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterruptInEventArgs>{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterruptInPipe>{ using type = winrt::Windows::Devices::Usb::IUsbInterruptInPipe; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor>{ using type = winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbInterruptOutPipe>{ using type = winrt::Windows::Devices::Usb::IUsbInterruptOutPipe; };
template <> struct default_interface<winrt::Windows::Devices::Usb::UsbSetupPacket>{ using type = winrt::Windows::Devices::Usb::IUsbSetupPacket; };
template <> struct abi<winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbBulkInPipe>
{
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<winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbBulkOutPipe>
{
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<winrt::Windows::Devices::Usb::IUsbConfiguration>
{
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<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics>
{
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<winrt::Windows::Devices::Usb::IUsbControlRequestType>
{
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<winrt::Windows::Devices::Usb::IUsbDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbDevice>
{
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<winrt::Windows::Devices::Usb::IUsbDeviceClass>
{
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<winrt::Windows::Devices::Usb::IUsbDeviceClasses>
{
struct WINRT_IMPL_NOVTABLE type : inspectable_abi
{
};
};
template <> struct abi<winrt::Windows::Devices::Usb::IUsbDeviceClassesStatics>
{
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<winrt::Windows::Devices::Usb::IUsbDeviceDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbDeviceStatics>
{
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<winrt::Windows::Devices::Usb::IUsbEndpointDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbEndpointDescriptorStatics>
{
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<winrt::Windows::Devices::Usb::IUsbInterface>
{
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<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics>
{
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<winrt::Windows::Devices::Usb::IUsbInterfaceSetting>
{
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<winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs>
{
struct WINRT_IMPL_NOVTABLE type : inspectable_abi
{
virtual int32_t __stdcall get_InterruptData(void**) noexcept = 0;
};
};
template <> struct abi<winrt::Windows::Devices::Usb::IUsbInterruptInPipe>
{
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<winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor>
{
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<winrt::Windows::Devices::Usb::IUsbInterruptOutPipe>
{
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<winrt::Windows::Devices::Usb::IUsbSetupPacket>
{
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<winrt::Windows::Devices::Usb::IUsbSetupPacketFactory>
{
struct WINRT_IMPL_NOVTABLE type : inspectable_abi
{
virtual int32_t __stdcall CreateWithEightByteBuffer(void*, void**) noexcept = 0;
};
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbBulkInEndpointDescriptor
{
[[nodiscard]] auto MaxPacketSize() const;
[[nodiscard]] auto EndpointNumber() const;
[[nodiscard]] auto Pipe() const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbBulkInEndpointDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbBulkInPipe>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbBulkInPipe<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbBulkOutEndpointDescriptor
{
[[nodiscard]] auto MaxPacketSize() const;
[[nodiscard]] auto EndpointNumber() const;
[[nodiscard]] auto Pipe() const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbBulkOutEndpointDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbBulkOutPipe>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbBulkOutPipe<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbConfiguration
{
[[nodiscard]] auto UsbInterfaces() const;
[[nodiscard]] auto ConfigurationDescriptor() const;
[[nodiscard]] auto Descriptors() const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbConfiguration>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbConfiguration<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbConfigurationDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbConfigurationDescriptorStatics<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbControlRequestType>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbControlRequestType<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbDevice>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDevice<D>;
};
template <typename D>
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<uint8_t> const& value) const;
[[nodiscard]] auto ProtocolCode() const;
auto ProtocolCode(winrt::Windows::Foundation::IReference<uint8_t> const& value) const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbDeviceClass>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDeviceClass<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbDeviceClasses
{
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbDeviceClasses>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDeviceClasses<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbDeviceClassesStatics>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDeviceClassesStatics<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbDeviceDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDeviceDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbDeviceStatics>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbDeviceStatics<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbEndpointDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbEndpointDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbEndpointDescriptorStatics>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbEndpointDescriptorStatics<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterface>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterface<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterfaceDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterfaceDescriptorStatics<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterfaceSetting>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterfaceSetting<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterruptInEndpointDescriptor<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbInterruptInEventArgs
{
[[nodiscard]] auto InterruptData() const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbInterruptInEventArgs>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterruptInEventArgs<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbInterruptInPipe
{
[[nodiscard]] auto EndpointDescriptor() const;
auto ClearStallAsync() const;
auto DataReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Usb::UsbInterruptInPipe, winrt::Windows::Devices::Usb::UsbInterruptInEventArgs> const& handler) const;
using DataReceived_revoker = impl::event_revoker<winrt::Windows::Devices::Usb::IUsbInterruptInPipe, &impl::abi_t<winrt::Windows::Devices::Usb::IUsbInterruptInPipe>::remove_DataReceived>;
[[nodiscard]] auto DataReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Devices::Usb::UsbInterruptInPipe, winrt::Windows::Devices::Usb::UsbInterruptInEventArgs> const& handler) const;
auto DataReceived(winrt::event_token const& token) const noexcept;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbInterruptInPipe>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterruptInPipe<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterruptOutEndpointDescriptor<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbInterruptOutPipe>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbInterruptOutPipe<D>;
};
template <typename D>
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<winrt::Windows::Devices::Usb::IUsbSetupPacket>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbSetupPacket<D>;
};
template <typename D>
struct consume_Windows_Devices_Usb_IUsbSetupPacketFactory
{
auto CreateWithEightByteBuffer(winrt::Windows::Storage::Streams::IBuffer const& eightByteBuffer) const;
};
template <> struct consume<winrt::Windows::Devices::Usb::IUsbSetupPacketFactory>
{
template <typename D> using type = consume_Windows_Devices_Usb_IUsbSetupPacketFactory<D>;
};
}
#endif