

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0613 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __windows2Edevices2Eusb_h__
#define __windows2Edevices2Eusb_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice;

#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice;

#endif 	/* ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__ */


#ifndef ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs;

#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbControlRequestType;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbSetupPacketFactory;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbSetupPacket;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDeviceClass;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDeviceClassesStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDeviceClasses;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDeviceStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDeviceDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbConfigurationDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbConfigurationDescriptorStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterfaceDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterfaceDescriptorStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbEndpointDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbEndpointDescriptorStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterruptInEventArgs;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbBulkInPipe;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterruptInPipe;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbBulkOutPipe;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterruptOutPipe;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbConfiguration;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterface;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterfaceSetting;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_FWD_DEFINED__ */


#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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbBulkInEndpointDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterruptInEndpointDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbBulkOutEndpointDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbInterruptOutEndpointDescriptor;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_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;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                interface IUsbDevice;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_FWD_DEFINED__ */


/* header files for imported files */
#include "inspectable.h"
#include "AsyncInfo.h"
#include "EventToken.h"
#include "Windows.Foundation.h"
#include "Windows.Storage.Streams.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0000 */
/* [local] */ 

#ifdef __cplusplus
} /*extern "C"*/ 
#endif
#include <windows.foundation.collections.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbBulkInEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbBulkInEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0000 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0000_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2201 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2201 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2201_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2201_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0001 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("ea511030-89c4-503d-8caf-667f4230d2a9"))
IIterator<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbBulkInEndpointDescriptor>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0001 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0001_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2202 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2202 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2202_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2202_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0002 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("101b1fd9-f1c9-5dda-9ad4-71176fa839b2"))
IIterable<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbBulkInEndpointDescriptor>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbBulkInPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbBulkInPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0002 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0002_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2203 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2203 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2203_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2203_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0003 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("d7af2c5b-528d-5cbb-a997-d830ade704c7"))
IIterator<ABI::Windows::Devices::Usb::UsbBulkInPipe*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInPipe*, ABI::Windows::Devices::Usb::IUsbBulkInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbBulkInPipe>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbBulkInPipe*> __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0003 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0003_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2204 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2204 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2204_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2204_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0004 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("2201a671-42d2-508d-a848-64b5447083c8"))
IIterable<ABI::Windows::Devices::Usb::UsbBulkInPipe*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInPipe*, ABI::Windows::Devices::Usb::IUsbBulkInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbBulkInPipe>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbBulkInPipe*> __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbBulkOutEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbBulkOutEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0004 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0004_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2205 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2205 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2205_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2205_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0005 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("a8b89ab3-883d-5361-9903-f489cc62bea5"))
IIterator<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbBulkOutEndpointDescriptor>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0005 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0005_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2206 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2206 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2206_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2206_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0006 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("b80beb39-62b3-5f59-b3e7-882cc9c5b0c0"))
IIterable<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbBulkOutEndpointDescriptor>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbBulkOutPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbBulkOutPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0006 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0006_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2207 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2207 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2207_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2207_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0007 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("46dd2f6a-573b-5c45-b168-9223038491dd"))
IIterator<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutPipe*, ABI::Windows::Devices::Usb::IUsbBulkOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbBulkOutPipe>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0007 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0007_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2208 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2208 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2208_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2208_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0008 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("9824caba-5ca6-5c2d-80cf-1949026d7857"))
IIterable<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutPipe*, ABI::Windows::Devices::Usb::IUsbBulkOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbBulkOutPipe>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0008 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0008_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2209 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2209 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2209_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2209_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0009 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("521598ed-0167-528e-990d-52abb712f072"))
IIterator<ABI::Windows::Devices::Usb::UsbDescriptor*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbDescriptor*, ABI::Windows::Devices::Usb::IUsbDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbDescriptor>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbDescriptor*> __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0009 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0009_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2210 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2210 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2210_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2210_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0010 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("989909a5-5a03-51fb-bd94-84da7bda8819"))
IIterable<ABI::Windows::Devices::Usb::UsbDescriptor*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbDescriptor*, ABI::Windows::Devices::Usb::IUsbDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbDescriptor>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbDescriptor*> __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterface;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterface;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0010 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0010_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2211 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2211 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2211_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2211_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0011 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("216b5a5f-63e3-5a9b-9c99-b09cbc0ff3b1"))
IIterator<ABI::Windows::Devices::Usb::UsbInterface*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterface*, ABI::Windows::Devices::Usb::IUsbInterface*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterface>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterface*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0011 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0011_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2212 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2212 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2212_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2212_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0012 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("f54037ed-92e9-590d-b904-3ad7bfa9a621"))
IIterable<ABI::Windows::Devices::Usb::UsbInterface*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterface*, ABI::Windows::Devices::Usb::IUsbInterface*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterface>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterface*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterfaceSetting;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterfaceSetting;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0012 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0012_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0012_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2213 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2213 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2213_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2213_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0013 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("71267ec7-5697-5dea-b2f8-14cf698ec0ad"))
IIterator<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterfaceSetting*, ABI::Windows::Devices::Usb::IUsbInterfaceSetting*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterfaceSetting>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0013 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0013_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0013_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2214 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2214 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2214_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2214_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0014 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("1aaf5739-9c2c-533e-a0e9-d53fdb45d15d"))
IIterable<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterfaceSetting*, ABI::Windows::Devices::Usb::IUsbInterfaceSetting*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterfaceSetting>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterruptInEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterruptInEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0014 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0014_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2215 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2215 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2215_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2215_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0015 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("6717500f-ec1c-5b12-bf33-0e3e3d244587"))
IIterator<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterruptInEndpointDescriptor>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0015 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0015_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0015_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2216 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2216 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2216_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2216_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0016 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("8a7bac69-1f10-59c7-9837-72cfed7154a4"))
IIterable<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterruptInEndpointDescriptor>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterruptInPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterruptInPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0016 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0016_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0016_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2217 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2217 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2217_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2217_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0017 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("e3a7b1c0-74f6-5292-a22a-672aa2b49985"))
IIterator<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInPipe*, ABI::Windows::Devices::Usb::IUsbInterruptInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterruptInPipe>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0017 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0017_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0017_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2218 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2218 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2218_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2218_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0018 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("39aef336-18aa-5be4-86d9-e332fe2632f3"))
IIterable<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInPipe*, ABI::Windows::Devices::Usb::IUsbInterruptInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterruptInPipe>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterruptOutEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterruptOutEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0018 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0018_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0018_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2219 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2219 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2219_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2219_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0019 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("4b6426db-db32-5b51-adad-04532ea94acd"))
IIterator<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0019 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0019_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0019_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2220 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2220 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2220_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2220_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0020 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("09393d62-2316-536b-8a10-7038884ab2a7"))
IIterable<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterruptOutPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterruptOutPipe;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0020 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0020_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0020_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2221 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2221 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2221_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2221_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0021 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("cbd8d8a8-2286-5cbd-a6e4-962742ffd91a"))
IIterator<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*, ABI::Windows::Devices::Usb::IUsbInterruptOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.Usb.UsbInterruptOutPipe>"; }
};
typedef IIterator<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t;
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0021 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0021_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0021_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2222 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2222 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2222_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2222_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0022 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("e61a011e-4abe-53f2-83b3-ed4a949d2e3f"))
IIterable<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*, ABI::Windows::Devices::Usb::IUsbInterruptOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.Usb.UsbInterruptOutPipe>"; }
};
typedef IIterable<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t;
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0022 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0022_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0022_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2223 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2223 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2223_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2223_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0023 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("9c69ac78-309e-5763-af26-9706ffa47ec0"))
IVectorView<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbBulkInEndpointDescriptor>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbBulkInEndpointDescriptor*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0023 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0023_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0023_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2224 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2224 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2224_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2224_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0024 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("a93c84bc-6484-5959-b61a-703cc7115f6f"))
IVectorView<ABI::Windows::Devices::Usb::UsbBulkInPipe*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkInPipe*, ABI::Windows::Devices::Usb::IUsbBulkInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbBulkInPipe>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbBulkInPipe*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0024 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0024_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0024_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2225 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2225 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2225_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2225_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0025 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("22a53676-a3ea-5dcd-bb39-b28a5327c4a3"))
IVectorView<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbBulkOutEndpointDescriptor>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbBulkOutEndpointDescriptor*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0025 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0025_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0025_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2226 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2226 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2226_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2226_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0026 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("0a873512-15f1-5e8e-a72a-045cfd7a5e83"))
IVectorView<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbBulkOutPipe*, ABI::Windows::Devices::Usb::IUsbBulkOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbBulkOutPipe>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbBulkOutPipe*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0026 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0026_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0026_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2227 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2227 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2227_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2227_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0027 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("5408baa2-291e-537a-b61f-137062f7ff7d"))
IVectorView<ABI::Windows::Devices::Usb::UsbDescriptor*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbDescriptor*, ABI::Windows::Devices::Usb::IUsbDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbDescriptor>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbDescriptor*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0027 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0027_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0027_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2228 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2228 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2228_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2228_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0028 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("9c69ec7f-2e42-58cd-a74a-f4974811134d"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterface*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterface*, ABI::Windows::Devices::Usb::IUsbInterface*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterface>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterface*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0028 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0028_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0028_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2229 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2229 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2229_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2229_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0029 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("71194af7-77c2-54d5-a116-287f0b7fd53f"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterfaceSetting*, ABI::Windows::Devices::Usb::IUsbInterfaceSetting*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterfaceSetting>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterfaceSetting*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0029 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0029_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0029_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2230 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2230 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2230_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2230_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0030 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("3fc7f890-218e-5057-904d-6387c591cc93"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterruptInEndpointDescriptor>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterruptInEndpointDescriptor*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0030 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0030_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0030_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2231 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2231 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2231_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2231_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0031 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("37469574-b4c5-5ba0-9616-894dd822ff5b"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInPipe*, ABI::Windows::Devices::Usb::IUsbInterruptInPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterruptInPipe>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterruptInPipe*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0031 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0031_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0031_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2232 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2232 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2232_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2232_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0032 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("984e7e15-c5ac-5140-a3c0-b583190085d7"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*, ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterruptOutEndpointDescriptor*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0032 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0032_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0032_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2233 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2233 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2233_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2233_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0033 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("748196c8-83bf-5ec3-8d28-a3112b3ee3cc"))
IVectorView<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*, ABI::Windows::Devices::Usb::IUsbInterruptOutPipe*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Usb.UsbInterruptOutPipe>"; }
};
typedef IVectorView<ABI::Windows::Devices::Usb::UsbInterruptOutPipe*> __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t;
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_FWD_DEFINED__
#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbDevice;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbDevice;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0033 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0033_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0033_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2234 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2234 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2234_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2234_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0034 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("7331254f-6caf-587d-9c2a-018c66d312db"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::Usb::UsbDevice*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbDevice*, ABI::Windows::Devices::Usb::IUsbDevice*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.Usb.UsbDevice>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::Usb::UsbDevice*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0034 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0034_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0034_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2235 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2235 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2235_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2235_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0035 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("2138c5ed-b71a-5166-9948-d55792748f5c"))
IAsyncOperation<ABI::Windows::Devices::Usb::UsbDevice*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbDevice*, ABI::Windows::Devices::Usb::IUsbDevice*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.Usb.UsbDevice>"; }
};
typedef IAsyncOperation<ABI::Windows::Devices::Usb::UsbDevice*> __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_t;
#define ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterruptInEventArgs;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
interface IUsbInterruptInEventArgs;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0035 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0035_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0035_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2236 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2236 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2236_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2236_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0036 */
/* [local] */ 

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("e6db9449-f36a-50f2-926c-2afd85c49f01"))
ITypedEventHandler<ABI::Windows::Devices::Usb::UsbInterruptInPipe*,ABI::Windows::Devices::Usb::UsbInterruptInEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInPipe*, ABI::Windows::Devices::Usb::IUsbInterruptInPipe*>,ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Usb::UsbInterruptInEventArgs*, ABI::Windows::Devices::Usb::IUsbInterruptInEventArgs*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.Usb.UsbInterruptInPipe, Windows.Devices.Usb.UsbInterruptInEventArgs>"; }
};
typedef ITypedEventHandler<ABI::Windows::Devices::Usb::UsbInterruptInPipe*,ABI::Windows::Devices::Usb::UsbInterruptInEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_t;
#define ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_FWD_DEFINED__
#define __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0036 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0036_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0036_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2237 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2237 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2237_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2237_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0037 */
/* [local] */ 

#ifndef DEF___FIReference_1_byte_USE
#define DEF___FIReference_1_byte_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("e5198cc8-2873-55f5-b0a1-84ff9e4aad62"))
IReference<byte> : IReference_impl<byte> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IReference`1<UInt8>"; }
};
typedef IReference<byte> __FIReference_1_byte_t;
#define ____FIReference_1_byte_FWD_DEFINED__
#define __FIReference_1_byte ABI::Windows::Foundation::__FIReference_1_byte_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIReference_1_byte_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0037 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0037_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0037_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2238 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2238 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2238_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2238_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0038 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_UINT32_USE
#define DEF___FIAsyncOperationCompletedHandler_1_UINT32_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("9343b6e7-e3d2-5e4a-ab2d-2bce4919a6a4"))
IAsyncOperationCompletedHandler<UINT32> : IAsyncOperationCompletedHandler_impl<UINT32> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<UInt32>"; }
};
typedef IAsyncOperationCompletedHandler<UINT32> __FIAsyncOperationCompletedHandler_1_UINT32_t;
#define ____FIAsyncOperationCompletedHandler_1_UINT32_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_UINT32 ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_UINT32_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_UINT32_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0038 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0038_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0038_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2239 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2239 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2239_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2239_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0039 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_UINT32_USE
#define DEF___FIAsyncOperation_1_UINT32_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("ef60385f-be78-584b-aaef-7829ada2b0de"))
IAsyncOperation<UINT32> : IAsyncOperation_impl<UINT32> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<UInt32>"; }
};
typedef IAsyncOperation<UINT32> __FIAsyncOperation_1_UINT32_t;
#define ____FIAsyncOperation_1_UINT32_FWD_DEFINED__
#define __FIAsyncOperation_1_UINT32 ABI::Windows::Foundation::__FIAsyncOperation_1_UINT32_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_UINT32_USE */

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Storage {
namespace Streams {
interface IBuffer;
} /*Streams*/
} /*Storage*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0039 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0039_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0039_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2240 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2240 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2240_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2240_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0040 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("51c3d2fd-b8a1-5620-b746-7ee6d533aca3"))
IAsyncOperationCompletedHandler<ABI::Windows::Storage::Streams::IBuffer*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Storage::Streams::IBuffer*> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Storage.Streams.IBuffer>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0040 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0040_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0040_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2241 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2241 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2241_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2241_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0041 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3bee8834-b9a7-5a80-a746-5ef097227878"))
IAsyncOperation<ABI::Windows::Storage::Streams::IBuffer*> : IAsyncOperation_impl<ABI::Windows::Storage::Streams::IBuffer*> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IBuffer>"; }
};
typedef IAsyncOperation<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t;
#define ____FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE */
#if defined(__cplusplus)
}
#endif // defined(__cplusplus)
#include <Windows.Foundation.h>
#if !defined(__windows2Estorage2Estreams_h__)
#include <Windows.Storage.Streams.h>
#endif // !defined(__windows2Estorage2Estreams_h__)
#if defined(__cplusplus)
extern "C" {
#endif // defined(__cplusplus)


#if !defined(__cplusplus)
typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan;

#endif


#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions;


#endif /* end if !defined(__cplusplus) */


#endif















#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbControlRequestType;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbSetupPacket;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbDeviceClass;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbDeviceClasses;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbDeviceDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbConfiguration;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbConfigurationDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbInterfaceDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
class UsbEndpointDescriptor;
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0041 */
/* [local] */ 




#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            
            typedef struct TimeSpan TimeSpan;
            
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbTransferDirection UsbTransferDirection;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbEndpointType UsbEndpointType;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbControlRecipient UsbControlRecipient;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbControlTransferType UsbControlTransferType;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbReadOptions UsbReadOptions;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                typedef enum UsbWriteOptions UsbWriteOptions;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif


















extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0041_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0041_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2242 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2242 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2242_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2242_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0042 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0042 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0042_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0042_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ea511030-89c4-503d-8caf-667f4230d2a9")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0043 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0043 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0043_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0043_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2243 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2243 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2243_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2243_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0044 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0044 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0044_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0044_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("101b1fd9-f1c9-5dda-9ad4-71176fa839b2")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0045 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0045 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0045_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0045_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2244 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2244 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2244_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2244_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0046 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0046 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0046_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0046_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d7af2c5b-528d-5cbb-a997-d830ade704c7")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInPipe **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0047 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0047 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0047_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0047_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2245 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2245 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2245_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2245_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0048 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0048 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0048_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0048_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2201a671-42d2-508d-a848-64b5447083c8")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkInPipe **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0049 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0049 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0049_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0049_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2246 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2246 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2246_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2246_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0050 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0050 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0050_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0050_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a8b89ab3-883d-5361-9903-f489cc62bea5")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0051 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0051 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0051_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0051_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2247 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2247 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2247_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2247_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0052 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0052 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0052_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0052_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b80beb39-62b3-5f59-b3e7-882cc9c5b0c0")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0053 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0053 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0053_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0053_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2248 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2248 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2248_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2248_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0054 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0054 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0054_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0054_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("46dd2f6a-573b-5c45-b168-9223038491dd")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutPipe **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0055 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0055 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0055_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0055_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2249 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2249 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2249_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2249_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0056 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0056 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0056_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0056_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9824caba-5ca6-5c2d-80cf-1949026d7857")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbBulkOutPipe **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0057 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0057 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0057_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0057_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2250 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2250 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2250_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2250_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0058 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0058 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0058_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0058_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("521598ed-0167-528e-990d-52abb712f072")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDescriptor **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0059 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0059 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0059_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0059_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2251 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2251 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2251_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2251_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0060 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0060 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0060_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0060_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("989909a5-5a03-51fb-bd94-84da7bda8819")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbDescriptor **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0061 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0061 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0061_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0061_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2252 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2252 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2252_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2252_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0062 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0062 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0062_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0062_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("216b5a5f-63e3-5a9b-9c99-b09cbc0ff3b1")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterface **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterface **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0063 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterface */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0063 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0063_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0063_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2253 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2253 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2253_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2253_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0064 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0064 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0064_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0064_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f54037ed-92e9-590d-b904-3ad7bfa9a621")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterface **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0065 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterface */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0065 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0065_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0065_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2254 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2254 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2254_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2254_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0066 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0066 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0066_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0066_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("71267ec7-5697-5dea-b2f8-14cf698ec0ad")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterfaceSetting **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterfaceSetting **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0067 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0067 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0067_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0067_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2255 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2255 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2255_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2255_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0068 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0068 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0068_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0068_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1aaf5739-9c2c-533e-a0e9-d53fdb45d15d")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterfaceSetting **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0069 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0069 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0069_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0069_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2256 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2256 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2256_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2256_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0070 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0070 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0070_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0070_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6717500f-ec1c-5b12-bf33-0e3e3d244587")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0071 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0071 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0071_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0071_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2257 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2257 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2257_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2257_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0072 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0072 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0072_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0072_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8a7bac69-1f10-59c7-9837-72cfed7154a4")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0073 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0073 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0073_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0073_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2258 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2258 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2258_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2258_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0074 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0074 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0074_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0074_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e3a7b1c0-74f6-5292-a22a-672aa2b49985")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInPipe **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0075 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0075 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0075_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0075_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2259 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2259 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2259_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2259_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0076 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0076 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0076_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0076_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("39aef336-18aa-5be4-86d9-e332fe2632f3")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptInPipe **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0077 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0077 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0077_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0077_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2260 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2260 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2260_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2260_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0078 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0078 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0078_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0078_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4b6426db-db32-5b51-adad-04532ea94acd")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0079 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0079 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0079_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0079_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2261 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2261 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2261_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2261_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0080 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0080 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0080_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0080_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("09393d62-2316-536b-8a10-7038884ab2a7")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0081 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0081 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0081_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0081_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2262 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2262 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2262_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2262_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0082 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#define DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0082 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0082_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0082_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("cbd8d8a8-2286-5cbd-a6e4-962742ffd91a")
    __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutPipe **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0083 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0083 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0083_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0083_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2263 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2263 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2263_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2263_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0084 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#define DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0084 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0084_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0084_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e61a011e-4abe-53f2-83b3-ed4a949d2e3f")
    __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0085 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0085 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0085_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0085_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2264 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2264 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2264_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2264_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0086 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0086 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0086_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0086_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9c69ac78-309e-5763-af26-9706ffa47ec0")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0087 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0087 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0087_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0087_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2265 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2265 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2265_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2265_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0088 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0088 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0088_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0088_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a93c84bc-6484-5959-b61a-703cc7115f6f")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInPipe **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbBulkInPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0089 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0089 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0089_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0089_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2266 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2266 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2266_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2266_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0090 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0090 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0090_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0090_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("22a53676-a3ea-5dcd-bb39-b28a5327c4a3")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0091 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0091 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0091_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0091_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2267 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2267 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2267_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2267_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0092 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0092 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0092_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0092_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0a873512-15f1-5e8e-a72a-045cfd7a5e83")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutPipe **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbBulkOutPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbBulkOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0093 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0093 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0093_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0093_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2268 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2268 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2268_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2268_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0094 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0094 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0094_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0094_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5408baa2-291e-537a-b61f-137062f7ff7d")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDescriptor **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0095 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0095 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0095_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0095_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2269 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2269 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2269_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2269_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0096 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0096 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0096_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0096_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9c69ec7f-2e42-58cd-a74a-f4974811134d")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterface **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterface *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterface **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0097 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0097 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0097_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0097_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2270 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2270 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2270_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2270_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0098 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0098 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0098_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0098_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("71194af7-77c2-54d5-a116-287f0b7fd53f")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterfaceSetting **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterfaceSetting *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterfaceSetting **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSettingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0099 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0099 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0099_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0099_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2271 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2271 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2271_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2271_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0100 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0100 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0100_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0100_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3fc7f890-218e-5057-904d-6387c591cc93")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0101 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0101 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0101_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0101_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2272 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2272 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2272_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2272_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0102 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0102 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0102_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0102_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("37469574-b4c5-5ba0-9616-894dd822ff5b")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInPipe **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptInPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0103 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0103 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0103_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0103_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2273 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2273 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2273_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2273_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0104 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0104 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0104_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0104_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("984e7e15-c5ac-5140-a3c0-b583190085d7")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0105 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0105 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0105_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0105_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2274 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2274 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2274_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2274_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0106 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#define DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0106 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0106_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0106_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("748196c8-83bf-5ec3-8d28-a3112b3ee3cc")
    __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutPipe **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptOutPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Devices::Usb::IUsbInterruptOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl;

    interface __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0107 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0107 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0107_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0107_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2275 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2275 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2275_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2275_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0108 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0108 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0108_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0108_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__

/* interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7331254f-6caf-587d-9c2a-018c66d312db")
    __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDeviceVtbl;

    interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0109 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0109 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0109_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0109_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2276 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2276 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2276_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2276_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0110 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice
#define DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0110 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0110_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0110_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__

/* interface __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2138c5ed-b71a-5166-9948-d55792748f5c")
    __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDevice **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CUsb__CUsbDevice **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice **results);
        
        END_INTERFACE
    } __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDeviceVtbl;

    interface __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice
    {
        CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_put_Completed(This,handler)	\
    ( (This)->lpVtbl -> put_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0111 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0111 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0111_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0111_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2277 */




/* interface __MIDL_itf_windows2Edevices2Eusb_0000_2277 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2277_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_2277_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0112 */
/* [local] */ 

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs
#define DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0112 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0112_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0112_v0_0_s_ifspec;

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__

/* interface __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs */
/* [unique][uuid][object] */ 



/* interface __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e6db9449-f36a-50f2-926c-2afd85c49f01")
    __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptInPipe *sender,
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbInterruptInEventArgs *e) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe *sender,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs *e);
        
        END_INTERFACE
    } __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl;

    interface __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs
    {
        CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_Invoke(This,sender,e)	\
    ( (This)->lpVtbl -> Invoke(This,sender,e) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0113 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs */
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection
    {
        UsbTransferDirection_Out	= 0,
        UsbTransferDirection_In	= 1
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType
    {
        UsbEndpointType_Control	= 0,
        UsbEndpointType_Isochronous	= 1,
        UsbEndpointType_Bulk	= 2,
        UsbEndpointType_Interrupt	= 3
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient
    {
        UsbControlRecipient_Device	= 0,
        UsbControlRecipient_SpecifiedInterface	= 1,
        UsbControlRecipient_Endpoint	= 2,
        UsbControlRecipient_Other	= 3,
        UsbControlRecipient_DefaultInterface	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType
    {
        UsbControlTransferType_Standard	= 0,
        UsbControlTransferType_Class	= 1,
        UsbControlTransferType_Vendor	= 2
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions
    {
        UsbReadOptions_None	= 0,
        UsbReadOptions_AutoClearStall	= 0x1,
        UsbReadOptions_OverrideAutomaticBufferManagement	= 0x2,
        UsbReadOptions_IgnoreShortPacket	= 0x4,
        UsbReadOptions_AllowPartialReads	= 0x8
    } ;
#endif /* end if !defined(__cplusplus) */

#else
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
enum UsbReadOptions;
DEFINE_ENUM_FLAG_OPERATORS(UsbReadOptions)
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions
    {
        UsbWriteOptions_None	= 0,
        UsbWriteOptions_AutoClearStall	= 0x1,
        UsbWriteOptions_ShortPacketTerminate	= 0x2
    } ;
#endif /* end if !defined(__cplusplus) */

#else
namespace ABI {
namespace Windows {
namespace Devices {
namespace Usb {
enum UsbWriteOptions;
DEFINE_ENUM_FLAG_OPERATORS(UsbWriteOptions)
} /*Usb*/
} /*Devices*/
} /*Windows*/
}
#endif
#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbControlRequestType[] = L"Windows.Devices.Usb.IUsbControlRequestType";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0113 */
/* [local] */ 

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbTransferDirection
                    {
                        UsbTransferDirection_Out	= 0,
                        UsbTransferDirection_In	= 1
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbEndpointType
                    {
                        UsbEndpointType_Control	= 0,
                        UsbEndpointType_Isochronous	= 1,
                        UsbEndpointType_Bulk	= 2,
                        UsbEndpointType_Interrupt	= 3
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbControlRecipient
                    {
                        UsbControlRecipient_Device	= 0,
                        UsbControlRecipient_SpecifiedInterface	= 1,
                        UsbControlRecipient_Endpoint	= 2,
                        UsbControlRecipient_Other	= 3,
                        UsbControlRecipient_DefaultInterface	= 4
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbControlTransferType
                    {
                        UsbControlTransferType_Standard	= 0,
                        UsbControlTransferType_Class	= 1,
                        UsbControlTransferType_Vendor	= 2
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbReadOptions
                    {
                        UsbReadOptions_None	= 0,
                        UsbReadOptions_AutoClearStall	= 0x1,
                        UsbReadOptions_OverrideAutomaticBufferManagement	= 0x2,
                        UsbReadOptions_IgnoreShortPacket	= 0x4,
                        UsbReadOptions_AllowPartialReads	= 0x8
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Usb {
                
                /* [v1_enum] */ 
                enum UsbWriteOptions
                    {
                        UsbWriteOptions_None	= 0,
                        UsbWriteOptions_AutoClearStall	= 0x1,
                        UsbWriteOptions_ShortPacketTerminate	= 0x2
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0113_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0113_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbControlRequestType */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("8E9465A6-D73D-46DE-94BE-AAE7F07C0F5C")
                    IUsbControlRequestType : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Direction( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbTransferDirection *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Direction( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbTransferDirection value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ControlTransferType( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbControlTransferType *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ControlTransferType( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbControlTransferType value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Recipient( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbControlRecipient *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Recipient( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbControlRecipient value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AsByte( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AsByte( 
                            /* [in] */ BYTE value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbControlRequestType = __uuidof(IUsbControlRequestType);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestTypeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Direction )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlTransferType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ControlTransferType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbControlTransferType value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Recipient )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Recipient )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbControlRecipient value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AsByte )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AsByte )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType * This,
            /* [in] */ 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_get_Direction(This,value)	\
    ( (This)->lpVtbl -> get_Direction(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_put_Direction(This,value)	\
    ( (This)->lpVtbl -> put_Direction(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_get_ControlTransferType(This,value)	\
    ( (This)->lpVtbl -> get_ControlTransferType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_put_ControlTransferType(This,value)	\
    ( (This)->lpVtbl -> put_ControlTransferType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_get_Recipient(This,value)	\
    ( (This)->lpVtbl -> get_Recipient(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_put_Recipient(This,value)	\
    ( (This)->lpVtbl -> put_Recipient(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_get_AsByte(This,value)	\
    ( (This)->lpVtbl -> get_AsByte(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_put_AsByte(This,value)	\
    ( (This)->lpVtbl -> put_AsByte(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0114 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbSetupPacketFactory[] = L"Windows.Devices.Usb.IUsbSetupPacketFactory";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0114 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0114_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0114_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbSetupPacketFactory */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("C9257D50-1B2E-4A41-A2A7-338F0CEF3C14")
                    IUsbSetupPacketFactory : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE CreateWithEightByteBuffer( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *eightByteBuffer,
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbSetupPacket **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbSetupPacketFactory = __uuidof(IUsbSetupPacketFactory);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateWithEightByteBuffer )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *eightByteBuffer,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_CreateWithEightByteBuffer(This,eightByteBuffer,value)	\
    ( (This)->lpVtbl -> CreateWithEightByteBuffer(This,eightByteBuffer,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketFactory_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0115 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbSetupPacket[] = L"Windows.Devices.Usb.IUsbSetupPacket";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0115 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0115_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0115_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbSetupPacket */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("104BA132-C78F-4C51-B654-E49D02F2CB03")
                    IUsbSetupPacket : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RequestType( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbControlRequestType **value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RequestType( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbControlRequestType *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Request( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Request( 
                            /* [in] */ BYTE value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
                            /* [in] */ UINT32 value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Index( 
                            /* [in] */ UINT32 value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Length( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Length( 
                            /* [in] */ UINT32 value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbSetupPacket = __uuidof(IUsbSetupPacket);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacketVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbControlRequestType *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Request )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Request )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ BYTE value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ UINT32 value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Index )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ UINT32 value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Length )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket * This,
            /* [in] */ 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_get_RequestType(This,value)	\
    ( (This)->lpVtbl -> get_RequestType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_put_RequestType(This,value)	\
    ( (This)->lpVtbl -> put_RequestType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_get_Request(This,value)	\
    ( (This)->lpVtbl -> get_Request(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_put_Request(This,value)	\
    ( (This)->lpVtbl -> put_Request(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_get_Value(This,value)	\
    ( (This)->lpVtbl -> get_Value(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_put_Value(This,value)	\
    ( (This)->lpVtbl -> put_Value(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_get_Index(This,value)	\
    ( (This)->lpVtbl -> get_Index(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_put_Index(This,value)	\
    ( (This)->lpVtbl -> put_Index(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_get_Length(This,value)	\
    ( (This)->lpVtbl -> get_Length(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_put_Length(This,value)	\
    ( (This)->lpVtbl -> put_Length(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0116 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDeviceClass[] = L"Windows.Devices.Usb.IUsbDeviceClass";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0116 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0116_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0116_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDeviceClass */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("051942F9-845E-47EB-B12A-38F2F617AFE7")
                    IUsbDeviceClass : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClassCode( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClassCode( 
                            /* [in] */ BYTE value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SubclassCode( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIReference_1_byte **value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SubclassCode( 
                            /* [in] */ __RPC__in_opt __FIReference_1_byte *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProtocolCode( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIReference_1_byte **value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ProtocolCode( 
                            /* [in] */ __RPC__in_opt __FIReference_1_byte *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDeviceClass = __uuidof(IUsbDeviceClass);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [in] */ BYTE value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubclassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIReference_1_byte **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SubclassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [in] */ __RPC__in_opt __FIReference_1_byte *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProtocolCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIReference_1_byte **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProtocolCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass * This,
            /* [in] */ __RPC__in_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_get_ClassCode(This,value)	\
    ( (This)->lpVtbl -> get_ClassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_put_ClassCode(This,value)	\
    ( (This)->lpVtbl -> put_ClassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_get_SubclassCode(This,value)	\
    ( (This)->lpVtbl -> get_SubclassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_put_SubclassCode(This,value)	\
    ( (This)->lpVtbl -> put_SubclassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_get_ProtocolCode(This,value)	\
    ( (This)->lpVtbl -> get_ProtocolCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_put_ProtocolCode(This,value)	\
    ( (This)->lpVtbl -> put_ProtocolCode(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0117 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDeviceClassesStatics[] = L"Windows.Devices.Usb.IUsbDeviceClassesStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0117 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0117_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0117_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDeviceClassesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("B20B0527-C580-4599-A165-981B4FD03230")
                    IUsbDeviceClassesStatics : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CdcControl( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Physical( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PersonalHealthcare( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ActiveSync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PalmSync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DeviceFirmwareUpdate( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Irda( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Measurement( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VendorSpecific( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceClass **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDeviceClassesStatics = __uuidof(IUsbDeviceClassesStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CdcControl )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Physical )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PersonalHealthcare )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveSync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PalmSync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceFirmwareUpdate )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Irda )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Measurement )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorSpecific )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_CdcControl(This,value)	\
    ( (This)->lpVtbl -> get_CdcControl(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_Physical(This,value)	\
    ( (This)->lpVtbl -> get_Physical(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_PersonalHealthcare(This,value)	\
    ( (This)->lpVtbl -> get_PersonalHealthcare(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_ActiveSync(This,value)	\
    ( (This)->lpVtbl -> get_ActiveSync(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_PalmSync(This,value)	\
    ( (This)->lpVtbl -> get_PalmSync(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_DeviceFirmwareUpdate(This,value)	\
    ( (This)->lpVtbl -> get_DeviceFirmwareUpdate(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_Irda(This,value)	\
    ( (This)->lpVtbl -> get_Irda(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_Measurement(This,value)	\
    ( (This)->lpVtbl -> get_Measurement(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_get_VendorSpecific(This,value)	\
    ( (This)->lpVtbl -> get_VendorSpecific(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0118 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDeviceClasses[] = L"Windows.Devices.Usb.IUsbDeviceClasses";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0118 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0118_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0118_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDeviceClasses */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("686F955D-9B92-4B30-9781-C22C55AC35CB")
                    IUsbDeviceClasses : public IInspectable
                    {
                    public:
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDeviceClasses = __uuidof(IUsbDeviceClasses);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClassesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses * This,
            /* [out] */ __RPC__out 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClasses_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0119 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDeviceStatics[] = L"Windows.Devices.Usb.IUsbDeviceStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0119 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0119_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0119_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDeviceStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("066B85A2-09B7-4446-8502-6FE6DCAA7309")
                    IUsbDeviceStatics : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector( 
                            /* [in] */ UINT32 vendorId,
                            /* [in] */ UINT32 productId,
                            /* [in] */ GUID winUsbInterfaceClass,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorGuidOnly( 
                            /* [in] */ GUID winUsbInterfaceClass,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorVidPidOnly( 
                            /* [in] */ UINT32 vendorId,
                            /* [in] */ UINT32 productId,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceClassSelector( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDeviceClass *usbClass,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE FromIdAsync( 
                            /* [in] */ __RPC__in HSTRING deviceId,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CDevices__CUsb__CUsbDevice **operation) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDeviceStatics = __uuidof(IUsbDeviceStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelector )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ UINT32 vendorId,
            /* [in] */ UINT32 productId,
            /* [in] */ GUID winUsbInterfaceClass,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelectorGuidOnly )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ GUID winUsbInterfaceClass,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelectorVidPidOnly )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ UINT32 vendorId,
            /* [in] */ UINT32 productId,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceClassSelector )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceClass *usbClass,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *FromIdAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics * This,
            /* [in] */ __RPC__in HSTRING deviceId,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetDeviceSelector(This,vendorId,productId,winUsbInterfaceClass,value)	\
    ( (This)->lpVtbl -> GetDeviceSelector(This,vendorId,productId,winUsbInterfaceClass,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetDeviceSelectorGuidOnly(This,winUsbInterfaceClass,value)	\
    ( (This)->lpVtbl -> GetDeviceSelectorGuidOnly(This,winUsbInterfaceClass,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetDeviceSelectorVidPidOnly(This,vendorId,productId,value)	\
    ( (This)->lpVtbl -> GetDeviceSelectorVidPidOnly(This,vendorId,productId,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_GetDeviceClassSelector(This,usbClass,value)	\
    ( (This)->lpVtbl -> GetDeviceClassSelector(This,usbClass,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_FromIdAsync(This,deviceId,operation)	\
    ( (This)->lpVtbl -> FromIdAsync(This,deviceId,operation) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0120 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDeviceDescriptor[] = L"Windows.Devices.Usb.IUsbDeviceDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0120 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0120_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0120_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDeviceDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("1F48D1F6-BA97-4322-B92C-B5B189216588")
                    IUsbDeviceDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BcdUsb( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPacketSize0( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VendorId( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProductId( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BcdDeviceRevision( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfConfigurations( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDeviceDescriptor = __uuidof(IUsbDeviceDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BcdUsb )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPacketSize0 )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorId )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProductId )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BcdDeviceRevision )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfConfigurations )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor * This,
            /* [out][retval] */ __RPC__out 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_BcdUsb(This,value)	\
    ( (This)->lpVtbl -> get_BcdUsb(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_MaxPacketSize0(This,value)	\
    ( (This)->lpVtbl -> get_MaxPacketSize0(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_VendorId(This,value)	\
    ( (This)->lpVtbl -> get_VendorId(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_ProductId(This,value)	\
    ( (This)->lpVtbl -> get_ProductId(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_BcdDeviceRevision(This,value)	\
    ( (This)->lpVtbl -> get_BcdDeviceRevision(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_get_NumberOfConfigurations(This,value)	\
    ( (This)->lpVtbl -> get_NumberOfConfigurations(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0121 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbConfigurationDescriptor[] = L"Windows.Devices.Usb.IUsbConfigurationDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0121 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0121_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0121_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbConfigurationDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("F2176D92-B442-407A-8207-7D646C0385F3")
                    IUsbConfigurationDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ConfigurationValue( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPowerMilliamps( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SelfPowered( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RemoteWakeup( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbConfigurationDescriptor = __uuidof(IUsbConfigurationDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConfigurationValue )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPowerMilliamps )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelfPowered )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteWakeup )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor * This,
            /* [out][retval] */ __RPC__out 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_get_ConfigurationValue(This,value)	\
    ( (This)->lpVtbl -> get_ConfigurationValue(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_get_MaxPowerMilliamps(This,value)	\
    ( (This)->lpVtbl -> get_MaxPowerMilliamps(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_get_SelfPowered(This,value)	\
    ( (This)->lpVtbl -> get_SelfPowered(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_get_RemoteWakeup(This,value)	\
    ( (This)->lpVtbl -> get_RemoteWakeup(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0122 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbConfigurationDescriptorStatics[] = L"Windows.Devices.Usb.IUsbConfigurationDescriptorStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0122 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0122_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0122_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbConfigurationDescriptorStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("424CED93-E740-40A1-92BD-DA120EA04914")
                    IUsbConfigurationDescriptorStatics : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE TryParse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbConfigurationDescriptor **parsed,
                            /* [out][retval] */ __RPC__out boolean *success) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE Parse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbConfigurationDescriptor **parsed) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbConfigurationDescriptorStatics = __uuidof(IUsbConfigurationDescriptorStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *TryParse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor **parsed,
            /* [out][retval] */ __RPC__out boolean *success);
        
        HRESULT ( STDMETHODCALLTYPE *Parse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_TryParse(This,descriptor,parsed,success)	\
    ( (This)->lpVtbl -> TryParse(This,descriptor,parsed,success) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_Parse(This,descriptor,parsed)	\
    ( (This)->lpVtbl -> Parse(This,descriptor,parsed) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptorStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0123 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterfaceDescriptor[] = L"Windows.Devices.Usb.IUsbInterfaceDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0123 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0123_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0123_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterfaceDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("199670C7-B7EE-4F90-8CD5-94A2E257598A")
                    IUsbInterfaceDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClassCode( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SubclassCode( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProtocolCode( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlternateSettingNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterfaceNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterfaceDescriptor = __uuidof(IUsbInterfaceDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubclassCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProtocolCode )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlternateSettingNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterfaceNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor * This,
            /* [out][retval] */ __RPC__out 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_get_ClassCode(This,value)	\
    ( (This)->lpVtbl -> get_ClassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_get_SubclassCode(This,value)	\
    ( (This)->lpVtbl -> get_SubclassCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_get_ProtocolCode(This,value)	\
    ( (This)->lpVtbl -> get_ProtocolCode(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_get_AlternateSettingNumber(This,value)	\
    ( (This)->lpVtbl -> get_AlternateSettingNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_get_InterfaceNumber(This,value)	\
    ( (This)->lpVtbl -> get_InterfaceNumber(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0124 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterfaceDescriptorStatics[] = L"Windows.Devices.Usb.IUsbInterfaceDescriptorStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0124 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0124_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0124_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterfaceDescriptorStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("E34A9FF5-77D6-48B6-B0BE-16C6422316FE")
                    IUsbInterfaceDescriptorStatics : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE TryParse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterfaceDescriptor **parsed,
                            /* [out][retval] */ __RPC__out boolean *success) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE Parse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterfaceDescriptor **parsed) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterfaceDescriptorStatics = __uuidof(IUsbInterfaceDescriptorStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *TryParse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor **parsed,
            /* [out][retval] */ __RPC__out boolean *success);
        
        HRESULT ( STDMETHODCALLTYPE *Parse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_TryParse(This,descriptor,parsed,success)	\
    ( (This)->lpVtbl -> TryParse(This,descriptor,parsed,success) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_Parse(This,descriptor,parsed)	\
    ( (This)->lpVtbl -> Parse(This,descriptor,parsed) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptorStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0125 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbEndpointDescriptor[] = L"Windows.Devices.Usb.IUsbEndpointDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0125 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0125_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0125_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbEndpointDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("6B4862D9-8DF7-4B40-AC83-578F139F0575")
                    IUsbEndpointDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Direction( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbTransferDirection *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointType( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbEndpointType *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AsBulkInEndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AsInterruptInEndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AsBulkOutEndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AsInterruptOutEndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbEndpointDescriptor = __uuidof(IUsbEndpointDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Direction )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbTransferDirection *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbEndpointType *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AsBulkInEndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AsInterruptInEndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AsBulkOutEndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AsInterruptOutEndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_EndpointNumber(This,value)	\
    ( (This)->lpVtbl -> get_EndpointNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_Direction(This,value)	\
    ( (This)->lpVtbl -> get_Direction(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_EndpointType(This,value)	\
    ( (This)->lpVtbl -> get_EndpointType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_AsBulkInEndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_AsBulkInEndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_AsInterruptInEndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_AsInterruptInEndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_AsBulkOutEndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_AsBulkOutEndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_get_AsInterruptOutEndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_AsInterruptOutEndpointDescriptor(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0126 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbEndpointDescriptorStatics[] = L"Windows.Devices.Usb.IUsbEndpointDescriptorStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0126 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0126_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0126_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbEndpointDescriptorStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("C890B201-9A6A-495E-A82C-295B9E708106")
                    IUsbEndpointDescriptorStatics : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE TryParse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbEndpointDescriptor **parsed,
                            /* [out][retval] */ __RPC__out boolean *success) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE Parse( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbDescriptor *descriptor,
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbEndpointDescriptor **parsed) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbEndpointDescriptorStatics = __uuidof(IUsbEndpointDescriptorStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *TryParse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptor **parsed,
            /* [out][retval] */ __RPC__out boolean *success);
        
        HRESULT ( STDMETHODCALLTYPE *Parse )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor *descriptor,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_TryParse(This,descriptor,parsed,success)	\
    ( (This)->lpVtbl -> TryParse(This,descriptor,parsed,success) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_Parse(This,descriptor,parsed)	\
    ( (This)->lpVtbl -> Parse(This,descriptor,parsed) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbEndpointDescriptorStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0127 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDescriptor[] = L"Windows.Devices.Usb.IUsbDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0127 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0127_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0127_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("0A89F216-5F9D-4874-8904-DA9AD3F5528F")
                    IUsbDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Length( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DescriptorType( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE ReadDescriptorBuffer( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *buffer) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDescriptor = __uuidof(IUsbDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DescriptorType )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        HRESULT ( STDMETHODCALLTYPE *ReadDescriptorBuffer )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor * This,
            /* [in] */ __RPC__in_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_get_Length(This,value)	\
    ( (This)->lpVtbl -> get_Length(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_get_DescriptorType(This,value)	\
    ( (This)->lpVtbl -> get_DescriptorType(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_ReadDescriptorBuffer(This,buffer)	\
    ( (This)->lpVtbl -> ReadDescriptorBuffer(This,buffer) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0128 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterruptInEventArgs[] = L"Windows.Devices.Usb.IUsbInterruptInEventArgs";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0128 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0128_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0128_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterruptInEventArgs */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("B7B04092-1418-4936-8209-299CF5605583")
                    IUsbInterruptInEventArgs : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptData( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterruptInEventArgs = __uuidof(IUsbInterruptInEventArgs);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterruptData )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_get_InterruptData(This,value)	\
    ( (This)->lpVtbl -> get_InterruptData(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0129 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbBulkInPipe[] = L"Windows.Devices.Usb.IUsbBulkInPipe";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0129 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0129_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0129_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbBulkInPipe */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("F01D2D3B-4548-4D50-B326-D82CDABE1220")
                    IUsbBulkInPipe : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxTransferSizeBytes( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor **value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE ClearStallAsync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **operation) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReadOptions( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbReadOptions value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReadOptions( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbReadOptions *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE FlushBuffer( void) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InputStream( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IInputStream **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbBulkInPipe = __uuidof(IUsbBulkInPipe);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxTransferSizeBytes )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor **value);
        
        HRESULT ( STDMETHODCALLTYPE *ClearStallAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReadOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbReadOptions *value);
        
        HRESULT ( STDMETHODCALLTYPE *FlushBuffer )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputStream )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_get_MaxTransferSizeBytes(This,value)	\
    ( (This)->lpVtbl -> get_MaxTransferSizeBytes(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_get_EndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_EndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_ClearStallAsync(This,operation)	\
    ( (This)->lpVtbl -> ClearStallAsync(This,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_put_ReadOptions(This,value)	\
    ( (This)->lpVtbl -> put_ReadOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_get_ReadOptions(This,value)	\
    ( (This)->lpVtbl -> get_ReadOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_FlushBuffer(This)	\
    ( (This)->lpVtbl -> FlushBuffer(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_get_InputStream(This,value)	\
    ( (This)->lpVtbl -> get_InputStream(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0130 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterruptInPipe[] = L"Windows.Devices.Usb.IUsbInterruptInPipe";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0130 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0130_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0130_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterruptInPipe */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("FA007116-84D7-48C7-8A3F-4C0B235F2EA6")
                    IUsbInterruptInPipe : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor **value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE ClearStallAsync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **operation) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE add_DataReceived( 
                            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs *handler,
                            /* [out][retval] */ __RPC__out EventRegistrationToken *token) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE remove_DataReceived( 
                            /* [in] */ EventRegistrationToken token) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterruptInPipe = __uuidof(IUsbInterruptInPipe);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor **value);
        
        HRESULT ( STDMETHODCALLTYPE *ClearStallAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
        
        HRESULT ( STDMETHODCALLTYPE *add_DataReceived )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CUsb__CUsbInterruptInPipe_Windows__CDevices__CUsb__CUsbInterruptInEventArgs *handler,
            /* [out][retval] */ __RPC__out EventRegistrationToken *token);
        
        HRESULT ( STDMETHODCALLTYPE *remove_DataReceived )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe * This,
            /* [in] */ 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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_get_EndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_EndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_ClearStallAsync(This,operation)	\
    ( (This)->lpVtbl -> ClearStallAsync(This,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_add_DataReceived(This,handler,token)	\
    ( (This)->lpVtbl -> add_DataReceived(This,handler,token) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_remove_DataReceived(This,token)	\
    ( (This)->lpVtbl -> remove_DataReceived(This,token) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0131 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbBulkOutPipe[] = L"Windows.Devices.Usb.IUsbBulkOutPipe";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0131 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0131_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0131_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbBulkOutPipe */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("A8E9EE6E-0115-45AA-8B21-37B225BCCEE7")
                    IUsbBulkOutPipe : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor **value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE ClearStallAsync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **operation) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_WriteOptions( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbWriteOptions value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WriteOptions( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbWriteOptions *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OutputStream( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IOutputStream **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbBulkOutPipe = __uuidof(IUsbBulkOutPipe);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor **value);
        
        HRESULT ( STDMETHODCALLTYPE *ClearStallAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputStream )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_get_EndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_EndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_ClearStallAsync(This,operation)	\
    ( (This)->lpVtbl -> ClearStallAsync(This,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_put_WriteOptions(This,value)	\
    ( (This)->lpVtbl -> put_WriteOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_get_WriteOptions(This,value)	\
    ( (This)->lpVtbl -> get_WriteOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_get_OutputStream(This,value)	\
    ( (This)->lpVtbl -> get_OutputStream(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0132 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterruptOutPipe[] = L"Windows.Devices.Usb.IUsbInterruptOutPipe";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0132 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0132_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0132_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterruptOutPipe */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("E984C8A9-AAF9-49D0-B96C-F661AB4A7F95")
                    IUsbInterruptOutPipe : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor **value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE ClearStallAsync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **operation) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_WriteOptions( 
                            /* [in] */ ABI::Windows::Devices::Usb::UsbWriteOptions value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WriteOptions( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::Usb::UsbWriteOptions *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OutputStream( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IOutputStream **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterruptOutPipe = __uuidof(IUsbInterruptOutPipe);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor **value);
        
        HRESULT ( STDMETHODCALLTYPE *ClearStallAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteOptions )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CUsb_CUsbWriteOptions *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputStream )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_get_EndpointDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_EndpointDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_ClearStallAsync(This,operation)	\
    ( (This)->lpVtbl -> ClearStallAsync(This,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_put_WriteOptions(This,value)	\
    ( (This)->lpVtbl -> put_WriteOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_get_WriteOptions(This,value)	\
    ( (This)->lpVtbl -> get_WriteOptions(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_get_OutputStream(This,value)	\
    ( (This)->lpVtbl -> get_OutputStream(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutPipe_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0133 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbConfiguration[] = L"Windows.Devices.Usb.IUsbConfiguration";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0133 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0133_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0133_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbConfiguration */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("68177429-36A9-46D7-B873-FC689251EC30")
                    IUsbConfiguration : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsbInterfaces( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ConfigurationDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbConfigurationDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Descriptors( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbConfiguration = __uuidof(IUsbConfiguration);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsbInterfaces )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterface **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ConfigurationDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbConfigurationDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Descriptors )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_get_UsbInterfaces(This,value)	\
    ( (This)->lpVtbl -> get_UsbInterfaces(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_get_ConfigurationDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_ConfigurationDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_get_Descriptors(This,value)	\
    ( (This)->lpVtbl -> get_Descriptors(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbConfiguration_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0134 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterface[] = L"Windows.Devices.Usb.IUsbInterface";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0134 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0134_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0134_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterface */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("A0322B95-7F47-48AB-A727-678C25BE2112")
                    IUsbInterface : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BulkInPipes( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptInPipes( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BulkOutPipes( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptOutPipes( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterfaceSettings( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterfaceNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Descriptors( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterface = __uuidof(IUsbInterface);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BulkInPipes )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInPipe **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterruptInPipes )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInPipe **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BulkOutPipes )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutPipe **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterruptOutPipes )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutPipe **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterfaceSettings )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterfaceSetting **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterfaceNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Descriptors )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_BulkInPipes(This,value)	\
    ( (This)->lpVtbl -> get_BulkInPipes(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_InterruptInPipes(This,value)	\
    ( (This)->lpVtbl -> get_InterruptInPipes(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_BulkOutPipes(This,value)	\
    ( (This)->lpVtbl -> get_BulkOutPipes(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_InterruptOutPipes(This,value)	\
    ( (This)->lpVtbl -> get_InterruptOutPipes(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_InterfaceSettings(This,value)	\
    ( (This)->lpVtbl -> get_InterfaceSettings(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_InterfaceNumber(This,value)	\
    ( (This)->lpVtbl -> get_InterfaceNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_get_Descriptors(This,value)	\
    ( (This)->lpVtbl -> get_Descriptors(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterface_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0135 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterfaceSetting[] = L"Windows.Devices.Usb.IUsbInterfaceSetting";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0135 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0135_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0135_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterfaceSetting */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("1827BBA7-8DA7-4AF7-8F4C-7F3032E781F5")
                    IUsbInterfaceSetting : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BulkInEndpoints( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptInEndpoints( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BulkOutEndpoints( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptOutEndpoints( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Selected( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE SelectSettingAsync( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **operation) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterfaceDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterfaceDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Descriptors( 
                            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbDescriptor **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterfaceSetting = __uuidof(IUsbInterfaceSetting);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSettingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BulkInEndpoints )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkInEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterruptInEndpoints )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptInEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BulkOutEndpoints )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbBulkOutEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterruptOutEndpoints )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CDevices__CUsb__CUsbInterruptOutEndpointDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Selected )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        HRESULT ( STDMETHODCALLTYPE *SelectSettingAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterfaceDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Descriptors )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_BulkInEndpoints(This,value)	\
    ( (This)->lpVtbl -> get_BulkInEndpoints(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_InterruptInEndpoints(This,value)	\
    ( (This)->lpVtbl -> get_InterruptInEndpoints(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_BulkOutEndpoints(This,value)	\
    ( (This)->lpVtbl -> get_BulkOutEndpoints(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_InterruptOutEndpoints(This,value)	\
    ( (This)->lpVtbl -> get_InterruptOutEndpoints(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_Selected(This,value)	\
    ( (This)->lpVtbl -> get_Selected(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_SelectSettingAsync(This,operation)	\
    ( (This)->lpVtbl -> SelectSettingAsync(This,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_InterfaceDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_InterfaceDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_get_Descriptors(This,value)	\
    ( (This)->lpVtbl -> get_Descriptors(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterfaceSetting_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0136 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbBulkInEndpointDescriptor[] = L"Windows.Devices.Usb.IUsbBulkInEndpointDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0136 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0136_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0136_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbBulkInEndpointDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("3C6E4846-06CF-42A9-9DC2-971C1B14B6E3")
                    IUsbBulkInEndpointDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPacketSize( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pipe( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkInPipe **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbBulkInEndpointDescriptor = __uuidof(IUsbBulkInEndpointDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPacketSize )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pipe )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_get_MaxPacketSize(This,value)	\
    ( (This)->lpVtbl -> get_MaxPacketSize(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_get_EndpointNumber(This,value)	\
    ( (This)->lpVtbl -> get_EndpointNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_get_Pipe(This,value)	\
    ( (This)->lpVtbl -> get_Pipe(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0137 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterruptInEndpointDescriptor[] = L"Windows.Devices.Usb.IUsbInterruptInEndpointDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0137 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0137_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0137_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterruptInEndpointDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("C0528967-C911-4C3A-86B2-419C2DA89039")
                    IUsbInterruptInEndpointDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPacketSize( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Interval( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Foundation::TimeSpan *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pipe( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptInPipe **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterruptInEndpointDescriptor = __uuidof(IUsbInterruptInEndpointDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPacketSize )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interval )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CTimeSpan *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pipe )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_get_MaxPacketSize(This,value)	\
    ( (This)->lpVtbl -> get_MaxPacketSize(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_get_EndpointNumber(This,value)	\
    ( (This)->lpVtbl -> get_EndpointNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_get_Interval(This,value)	\
    ( (This)->lpVtbl -> get_Interval(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_get_Pipe(This,value)	\
    ( (This)->lpVtbl -> get_Pipe(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptInEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0138 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbBulkOutEndpointDescriptor[] = L"Windows.Devices.Usb.IUsbBulkOutEndpointDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0138 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0138_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0138_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbBulkOutEndpointDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("2820847A-FFEE-4F60-9BE1-956CAC3ECB65")
                    IUsbBulkOutEndpointDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPacketSize( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pipe( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbBulkOutPipe **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbBulkOutEndpointDescriptor = __uuidof(IUsbBulkOutEndpointDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPacketSize )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pipe )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_get_MaxPacketSize(This,value)	\
    ( (This)->lpVtbl -> get_MaxPacketSize(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_get_EndpointNumber(This,value)	\
    ( (This)->lpVtbl -> get_EndpointNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_get_Pipe(This,value)	\
    ( (This)->lpVtbl -> get_Pipe(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbBulkOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0139 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbInterruptOutEndpointDescriptor[] = L"Windows.Devices.Usb.IUsbInterruptOutEndpointDescriptor";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0139 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0139_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0139_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbInterruptOutEndpointDescriptor */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("CC9FED81-10CA-4533-952D-9E278341E80F")
                    IUsbInterruptOutEndpointDescriptor : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxPacketSize( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndpointNumber( 
                            /* [out][retval] */ __RPC__out BYTE *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Interval( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Foundation::TimeSpan *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pipe( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterruptOutPipe **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbInterruptOutEndpointDescriptor = __uuidof(IUsbInterruptOutEndpointDescriptor);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxPacketSize )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndpointNumber )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Interval )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CTimeSpan *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pipe )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_get_MaxPacketSize(This,value)	\
    ( (This)->lpVtbl -> get_MaxPacketSize(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_get_EndpointNumber(This,value)	\
    ( (This)->lpVtbl -> get_EndpointNumber(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_get_Interval(This,value)	\
    ( (This)->lpVtbl -> get_Interval(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_get_Pipe(This,value)	\
    ( (This)->lpVtbl -> get_Pipe(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbInterruptOutEndpointDescriptor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0140 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_Usb_IUsbDevice[] = L"Windows.Devices.Usb.IUsbDevice";
#endif /* !defined(____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0140 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0140_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0140_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::Usb::IUsbDevice */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CUsb_CIUsbDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace Usb {
                    
                    MIDL_INTERFACE("5249B992-C456-44D5-AD5E-24F5A089F63B")
                    IUsbDevice : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE SendControlOutTransferAsync( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbSetupPacket *setupPacket,
                            /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *buffer,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_UINT32 **operation) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE SendControlOutTransferAsyncNoBuffer( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbSetupPacket *setupPacket,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_UINT32 **operation) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE SendControlInTransferAsync( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbSetupPacket *setupPacket,
                            /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *buffer,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **operation) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE SendControlInTransferAsyncNoBuffer( 
                            /* [in] */ __RPC__in_opt ABI::Windows::Devices::Usb::IUsbSetupPacket *setupPacket,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **operation) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultInterface( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbInterface **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DeviceDescriptor( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbDeviceDescriptor **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Configuration( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Devices::Usb::IUsbConfiguration **value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IUsbDevice = __uuidof(IUsbDevice);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *SendControlOutTransferAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket *setupPacket,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_UINT32 **operation);
        
        HRESULT ( STDMETHODCALLTYPE *SendControlOutTransferAsyncNoBuffer )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket *setupPacket,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_UINT32 **operation);
        
        HRESULT ( STDMETHODCALLTYPE *SendControlInTransferAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket *setupPacket,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **operation);
        
        HRESULT ( STDMETHODCALLTYPE *SendControlInTransferAsyncNoBuffer )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbSetupPacket *setupPacket,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **operation);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbInterface **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceDescriptor )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CUsb_CIUsbDeviceDescriptor **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Configuration )( 
            __RPC__in __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt __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;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_SendControlOutTransferAsync(This,setupPacket,buffer,operation)	\
    ( (This)->lpVtbl -> SendControlOutTransferAsync(This,setupPacket,buffer,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_SendControlOutTransferAsyncNoBuffer(This,setupPacket,operation)	\
    ( (This)->lpVtbl -> SendControlOutTransferAsyncNoBuffer(This,setupPacket,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_SendControlInTransferAsync(This,setupPacket,buffer,operation)	\
    ( (This)->lpVtbl -> SendControlInTransferAsync(This,setupPacket,buffer,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_SendControlInTransferAsyncNoBuffer(This,setupPacket,operation)	\
    ( (This)->lpVtbl -> SendControlInTransferAsyncNoBuffer(This,setupPacket,operation) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_get_DefaultInterface(This,value)	\
    ( (This)->lpVtbl -> get_DefaultInterface(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_get_DeviceDescriptor(This,value)	\
    ( (This)->lpVtbl -> get_DeviceDescriptor(This,value) ) 

#define __x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_get_Configuration(This,value)	\
    ( (This)->lpVtbl -> get_Configuration(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CUsb_CIUsbDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0141 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbControlRequestType_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbControlRequestType_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbControlRequestType[] = L"Windows.Devices.Usb.UsbControlRequestType";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbSetupPacket_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbSetupPacket_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbSetupPacket[] = L"Windows.Devices.Usb.UsbSetupPacket";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceClass_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceClass_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbDeviceClass[] = L"Windows.Devices.Usb.UsbDeviceClass";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceClasses_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceClasses_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbDeviceClasses[] = L"Windows.Devices.Usb.UsbDeviceClasses";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbDevice_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbDevice_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbDevice[] = L"Windows.Devices.Usb.UsbDevice";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterface_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterface_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterface[] = L"Windows.Devices.Usb.UsbInterface";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbDeviceDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbDeviceDescriptor[] = L"Windows.Devices.Usb.UsbDeviceDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbConfiguration_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbConfiguration_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbConfiguration[] = L"Windows.Devices.Usb.UsbConfiguration";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbDescriptor[] = L"Windows.Devices.Usb.UsbDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbConfigurationDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbConfigurationDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbConfigurationDescriptor[] = L"Windows.Devices.Usb.UsbConfigurationDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterfaceDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterfaceDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterfaceDescriptor[] = L"Windows.Devices.Usb.UsbInterfaceDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbBulkInEndpointDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbBulkInEndpointDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbBulkInEndpointDescriptor[] = L"Windows.Devices.Usb.UsbBulkInEndpointDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInEndpointDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInEndpointDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterruptInEndpointDescriptor[] = L"Windows.Devices.Usb.UsbInterruptInEndpointDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbBulkOutEndpointDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbBulkOutEndpointDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbBulkOutEndpointDescriptor[] = L"Windows.Devices.Usb.UsbBulkOutEndpointDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptOutEndpointDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptOutEndpointDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterruptOutEndpointDescriptor[] = L"Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbEndpointDescriptor_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbEndpointDescriptor_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbEndpointDescriptor[] = L"Windows.Devices.Usb.UsbEndpointDescriptor";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterruptInEventArgs[] = L"Windows.Devices.Usb.UsbInterruptInEventArgs";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInPipe_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptInPipe_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterruptInPipe[] = L"Windows.Devices.Usb.UsbInterruptInPipe";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbBulkInPipe_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbBulkInPipe_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbBulkInPipe[] = L"Windows.Devices.Usb.UsbBulkInPipe";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbBulkOutPipe_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbBulkOutPipe_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbBulkOutPipe[] = L"Windows.Devices.Usb.UsbBulkOutPipe";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptOutPipe_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterruptOutPipe_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterruptOutPipe[] = L"Windows.Devices.Usb.UsbInterruptOutPipe";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_Usb_UsbInterfaceSetting_DEFINED
#define RUNTIMECLASS_Windows_Devices_Usb_UsbInterfaceSetting_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_Usb_UsbInterfaceSetting[] = L"Windows.Devices.Usb.UsbInterfaceSetting";
#endif


/* interface __MIDL_itf_windows2Edevices2Eusb_0000_0141 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0141_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eusb_0000_0141_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  HSTRING_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HSTRING * ); 
void                      __RPC_USER  HSTRING_UserFree(     __RPC__in unsigned long *, __RPC__in HSTRING * ); 

unsigned long             __RPC_USER  HSTRING_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HSTRING * ); 
void                      __RPC_USER  HSTRING_UserFree64(     __RPC__in unsigned long *, __RPC__in HSTRING * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


