// WARNING: Please don't edit this file. It was generated by Swift/WinRT v0.0.1

#pragma once
// Header files for imported files
#include <inspectable.h>
#include <EventToken.h>
#include <windowscontracts.h>
#include "Windows.Foundation.h"
#include "Windows.Storage.Streams.h"
// Importing Collections header
#include "Windows.Foundation.Collections.h"

/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory;

#endif // ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32 __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32;

#if !defined(____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1_UINT32 __x_ABI_C__FIAsyncOperation_1_UINT32;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1_UINT32;

    typedef struct __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1_UINT32* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1_UINT32* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl;

    interface __x_ABI_C__FIAsyncOperation_1_UINT32
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32 __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This,
        __x_ABI_C__FIAsyncOperation_1_UINT32* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__
    
typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice;

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__
    
#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe** result);

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSettingVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipeVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIReference_1_byte_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIReference_1_byte_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIReference_1_byte __x_ABI_C__FIReference_1_byte;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIReference_1_byte;

    typedef struct __x_ABI_C__FIReference_1_byteVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIReference_1_byte* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIReference_1_byte* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIReference_1_byte* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIReference_1_byte* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIReference_1_byte* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIReference_1_byte* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Value)(__x_ABI_C__FIReference_1_byte* This,
        BYTE* result);

        END_INTERFACE
    } __x_ABI_C__FIReference_1_byteVtbl;

    interface __x_ABI_C__FIReference_1_byte
    {
        CONST_VTBL struct __x_ABI_C__FIReference_1_byteVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIReference_1_byte_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs;

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* sender,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__
    
typedef enum __x_ABI_CWindows_CFoundation_CAsyncStatus __x_ABI_CWindows_CFoundation_CAsyncStatus;

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIPropertyValue __x_ABI_CWindows_CFoundation_CIPropertyValue;

#endif // ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__

typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan;

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIInputStream __x_ABI_CWindows_CStorage_CStreams_CIInputStream;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIOutputStream __x_ABI_CWindows_CStorage_CStreams_CIOutputStream;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient;

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType;

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType;

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions;

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection;

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions;

enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient_Device = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient_SpecifiedInterface = 1,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient_Endpoint = 2,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient_Other = 3,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient_DefaultInterface = 4,
};

enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType_Standard = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType_Class = 1,
    __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType_Vendor = 2,
};

enum __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType_Control = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType_Isochronous = 1,
    __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType_Bulk = 2,
    __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType_Interrupt = 3,
};

enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions_None = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions_AutoClearStall = 0x1,
    __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions_OverrideAutomaticBufferManagement = 0x2,
    __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions_IgnoreShortPacket = 0x4,
    __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions_AllowPartialReads = 0x8,
};

enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection_Out = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection_In = 1,
};

enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions
    {
        __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions_None = 0,
    __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions_AutoClearStall = 0x1,
    __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions_ShortPacketTerminate = 0x2,
};

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxPacketSize)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Pipe)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxTransferSizeBytes)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* ClearStallAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* put_ReadOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions value);
    HRESULT (STDMETHODCALLTYPE* get_ReadOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions* value);
    HRESULT (STDMETHODCALLTYPE* FlushBuffer)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This);
    HRESULT (STDMETHODCALLTYPE* get_InputStream)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe* This,
        __x_ABI_CWindows_CStorage_CStreams_CIInputStream** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipeVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipeVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxPacketSize)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Pipe)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_EndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* ClearStallAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* put_WriteOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions value);
    HRESULT (STDMETHODCALLTYPE* get_WriteOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions* value);
    HRESULT (STDMETHODCALLTYPE* get_OutputStream)(__x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe* This,
        __x_ABI_CWindows_CStorage_CStreams_CIOutputStream** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipeVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipeVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_UsbInterfaces)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterface** value);
    HRESULT (STDMETHODCALLTYPE* get_ConfigurationDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_Descriptors)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_ConfigurationValue)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_MaxPowerMilliamps)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_SelfPowered)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_RemoteWakeup)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor* This,
        boolean* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* TryParse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor** parsed,
        boolean* success);
    HRESULT (STDMETHODCALLTYPE* Parse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor** parsed);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestTypeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Direction)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection* value);
    HRESULT (STDMETHODCALLTYPE* put_Direction)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection value);
    HRESULT (STDMETHODCALLTYPE* get_ControlTransferType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType* value);
    HRESULT (STDMETHODCALLTYPE* put_ControlTransferType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType value);
    HRESULT (STDMETHODCALLTYPE* get_Recipient)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient* value);
    HRESULT (STDMETHODCALLTYPE* put_Recipient)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient value);
    HRESULT (STDMETHODCALLTYPE* get_AsByte)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* put_AsByte)(__x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* This,
        BYTE value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestTypeVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestTypeVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Length)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_DescriptorType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* ReadDescriptorBuffer)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* buffer);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* SendControlOutTransferAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* setupPacket,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* buffer,
        __x_ABI_C__FIAsyncOperation_1_UINT32** operation);
    HRESULT (STDMETHODCALLTYPE* SendControlOutTransferAsyncNoBuffer)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* setupPacket,
        __x_ABI_C__FIAsyncOperation_1_UINT32** operation);
    HRESULT (STDMETHODCALLTYPE* SendControlInTransferAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* setupPacket,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* buffer,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer** operation);
    HRESULT (STDMETHODCALLTYPE* SendControlInTransferAsyncNoBuffer)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* setupPacket,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer** operation);
    HRESULT (STDMETHODCALLTYPE* get_DefaultInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface** value);
    HRESULT (STDMETHODCALLTYPE* get_DeviceDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_Configuration)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDevice* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_ClassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* put_ClassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        BYTE value);
    HRESULT (STDMETHODCALLTYPE* get_SubclassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        __x_ABI_C__FIReference_1_byte** value);
    HRESULT (STDMETHODCALLTYPE* put_SubclassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        __x_ABI_C__FIReference_1_byte* value);
    HRESULT (STDMETHODCALLTYPE* get_ProtocolCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        __x_ABI_C__FIReference_1_byte** value);
    HRESULT (STDMETHODCALLTYPE* put_ProtocolCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* This,
        __x_ABI_C__FIReference_1_byte* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses* This,
            TrustLevel* trustLevel);
    
        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_CdcControl)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_Physical)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_PersonalHealthcare)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_ActiveSync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_PalmSync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_DeviceFirmwareUpdate)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_Irda)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_Measurement)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);
    HRESULT (STDMETHODCALLTYPE* get_VendorSpecific)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_BcdUsb)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_MaxPacketSize0)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_VendorId)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_ProductId)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_BcdDeviceRevision)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_NumberOfConfigurations)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor* This,
        BYTE* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
        UINT32 vendorId,
        UINT32 productId,
        GUID winUsbInterfaceClass,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorGuidOnly)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
        GUID winUsbInterfaceClass,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorVidPidOnly)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
        UINT32 vendorId,
        UINT32 productId,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* GetDeviceClassSelector)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass* usbClass,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics* This,
        HSTRING deviceId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CUsb__CUsbDevice** operation);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_EndpointNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Direction)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType* value);
    HRESULT (STDMETHODCALLTYPE* get_AsBulkInEndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_AsInterruptInEndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_AsBulkOutEndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_AsInterruptOutEndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* TryParse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor** parsed,
        boolean* success);
    HRESULT (STDMETHODCALLTYPE* Parse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor** parsed);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_BulkInPipes)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInPipe** value);
    HRESULT (STDMETHODCALLTYPE* get_InterruptInPipes)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe** value);
    HRESULT (STDMETHODCALLTYPE* get_BulkOutPipes)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutPipe** value);
    HRESULT (STDMETHODCALLTYPE* get_InterruptOutPipes)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutPipe** value);
    HRESULT (STDMETHODCALLTYPE* get_InterfaceSettings)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterfaceSetting** value);
    HRESULT (STDMETHODCALLTYPE* get_InterfaceNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Descriptors)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterface* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterface;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_ClassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_SubclassCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_ProtocolCode)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_AlternateSettingNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_InterfaceNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor* This,
        BYTE* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* TryParse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor** parsed,
        boolean* success);
    HRESULT (STDMETHODCALLTYPE* Parse)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor* descriptor,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor** parsed);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_BulkInEndpoints)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_InterruptInEndpoints)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_BulkOutEndpoints)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_InterruptOutEndpoints)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_Selected)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* SelectSettingAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* get_InterfaceDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* get_Descriptors)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CUsb__CUsbDescriptor** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSettingVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSettingVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxPacketSize)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Interval)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);
    HRESULT (STDMETHODCALLTYPE* get_Pipe)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_InterruptData)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_EndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* ClearStallAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* add_DataReceived)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInPipe___x_ABI_CWindows__CDevices__CUsb__CUsbInterruptInEventArgs* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_DataReceived)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe* This,
        EventRegistrationToken token);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipeVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipeVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxPacketSize)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_EndpointNumber)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* get_Interval)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);
    HRESULT (STDMETHODCALLTYPE* get_Pipe)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptorVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_EndpointDescriptor)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor** value);
    HRESULT (STDMETHODCALLTYPE* ClearStallAsync)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* put_WriteOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions value);
    HRESULT (STDMETHODCALLTYPE* get_WriteOptions)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
        enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions* value);
    HRESULT (STDMETHODCALLTYPE* get_OutputStream)(__x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe* This,
        __x_ABI_CWindows_CStorage_CStreams_CIOutputStream** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipeVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipeVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_RequestType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType** value);
    HRESULT (STDMETHODCALLTYPE* put_RequestType)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType* value);
    HRESULT (STDMETHODCALLTYPE* get_Request)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        BYTE* value);
    HRESULT (STDMETHODCALLTYPE* put_Request)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        BYTE value);
    HRESULT (STDMETHODCALLTYPE* get_Value)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_Value)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32 value);
    HRESULT (STDMETHODCALLTYPE* get_Index)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_Index)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32 value);
    HRESULT (STDMETHODCALLTYPE* get_Length)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_Length)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket* This,
        UINT32 value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactoryVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* CreateWithEightByteBuffer)(__x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* eightByteBuffer,
        __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactoryVtbl;

    interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactoryVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory;
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__) */
    
