

/* 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 __windows2Edevices2Eserialcommunication_h__
#define __windows2Edevices2Eserialcommunication_h__

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

/* Forward Declarations */ 

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice;

#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice;

#endif 	/* ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__ */


#ifndef ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs;

#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_FWD_DEFINED__ */


#ifndef ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs;

#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                interface ISerialDeviceStatics;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                interface IErrorReceivedEventArgs;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                interface IPinChangedEventArgs;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                interface ISerialDevice;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_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_windows2Edevices2Eserialcommunication_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 SerialCommunication {
class SerialDevice;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace SerialCommunication {
interface ISerialDevice;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0000 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0000_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2545 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2545 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2545_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2545_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0001 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("84a34b33-06fc-5e63-8ee2-eab4ff69acb7"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::SerialDevice*, ABI::Windows::Devices::SerialCommunication::ISerialDevice*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SerialCommunication.SerialDevice>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_t

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


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0001 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0001_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2546 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2546 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2546_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2546_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0002 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("44ef26ed-c1ff-546a-a46b-6a37de9187fb"))
IAsyncOperation<ABI::Windows::Devices::SerialCommunication::SerialDevice*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::SerialDevice*, ABI::Windows::Devices::SerialCommunication::ISerialDevice*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SerialCommunication.SerialDevice>"; }
};
typedef IAsyncOperation<ABI::Windows::Devices::SerialCommunication::SerialDevice*> __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_t;
#define ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace SerialCommunication {
class ErrorReceivedEventArgs;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace SerialCommunication {
interface IErrorReceivedEventArgs;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0002 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0002_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2547 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2547 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2547_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2547_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0003 */
/* [local] */ 

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("d92ea323-b7bf-5e02-b9fb-c61f97d080e9"))
ITypedEventHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*,ABI::Windows::Devices::SerialCommunication::ErrorReceivedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::SerialDevice*, ABI::Windows::Devices::SerialCommunication::ISerialDevice*>,ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::ErrorReceivedEventArgs*, ABI::Windows::Devices::SerialCommunication::IErrorReceivedEventArgs*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SerialCommunication.SerialDevice, Windows.Devices.SerialCommunication.ErrorReceivedEventArgs>"; }
};
typedef ITypedEventHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*,ABI::Windows::Devices::SerialCommunication::ErrorReceivedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_t;
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_FWD_DEFINED__
#define __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace SerialCommunication {
class PinChangedEventArgs;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Devices {
namespace SerialCommunication {
interface IPinChangedEventArgs;
} /*SerialCommunication*/
} /*Devices*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0003 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0003_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2548 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2548 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2548_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2548_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0004 */
/* [local] */ 

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("e496c3ef-5802-5ac4-ac2e-96bc23fa9447"))
ITypedEventHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*,ABI::Windows::Devices::SerialCommunication::PinChangedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::SerialDevice*, ABI::Windows::Devices::SerialCommunication::ISerialDevice*>,ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SerialCommunication::PinChangedEventArgs*, ABI::Windows::Devices::SerialCommunication::IPinChangedEventArgs*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SerialCommunication.SerialDevice, Windows.Devices.SerialCommunication.PinChangedEventArgs>"; }
};
typedef ITypedEventHandler<ABI::Windows::Devices::SerialCommunication::SerialDevice*,ABI::Windows::Devices::SerialCommunication::PinChangedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_t;
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_FWD_DEFINED__
#define __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_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_CSerialCommunication_CSerialParity __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity;


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


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

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake;


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


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

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount;


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


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

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError;


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


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

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange;


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


#endif



/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0004 */
/* [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 SerialCommunication {
                
                typedef enum SerialParity SerialParity;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                typedef enum SerialHandshake SerialHandshake;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                typedef enum SerialStopBitCount SerialStopBitCount;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                typedef enum SerialError SerialError;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                typedef enum SerialPinChange SerialPinChange;
                
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0004_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2549 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2549 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2549_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2549_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0005 */
/* [local] */ 

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



/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0005 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0005_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("84a34b33-06fc-5e63-8ee2-eab4ff69acb7")
    __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl;

    interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0006 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0006 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0006_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2550 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2550 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2550_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2550_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0007 */
/* [local] */ 

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


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0007 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0007_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("44ef26ed-c1ff-546a-a46b-6a37de9187fb")
    __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Devices::SerialCommunication::ISerialDevice **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * 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__CSerialCommunication__CSerialDevice * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSerialCommunication__CSerialDevice **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice **results);
        
        END_INTERFACE
    } __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl;

    interface __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice
    {
        CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_put_Completed(This,handler)	\
    ( (This)->lpVtbl -> put_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0008 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0008 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0008_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2551 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2551 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2551_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2551_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0009 */
/* [local] */ 

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


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0009 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0009_v0_0_s_ifspec;

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d92ea323-b7bf-5e02-b9fb-c61f97d080e9")
    __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::SerialCommunication::ISerialDevice *sender,
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::SerialCommunication::IErrorReceivedEventArgs *e) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice *sender,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs *e);
        
        END_INTERFACE
    } __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl;

    interface __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs
    {
        CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_Invoke(This,sender,e)	\
    ( (This)->lpVtbl -> Invoke(This,sender,e) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0010 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0010 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0010_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2552 */




/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2552 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2552_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_2552_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0011 */
/* [local] */ 

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


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0011 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0011_v0_0_s_ifspec;

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e496c3ef-5802-5ac4-ac2e-96bc23fa9447")
    __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::SerialCommunication::ISerialDevice *sender,
            /* [in] */ __RPC__in_opt ABI::Windows::Devices::SerialCommunication::IPinChangedEventArgs *e) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice *sender,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs *e);
        
        END_INTERFACE
    } __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl;

    interface __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs
    {
        CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_Invoke(This,sender,e)	\
    ( (This)->lpVtbl -> Invoke(This,sender,e) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0012 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs */
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity
    {
        SerialParity_None	= 0,
        SerialParity_Odd	= 1,
        SerialParity_Even	= 2,
        SerialParity_Mark	= 3,
        SerialParity_Space	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake
    {
        SerialHandshake_None	= 0,
        SerialHandshake_RequestToSend	= 1,
        SerialHandshake_XOnXOff	= 2,
        SerialHandshake_RequestToSendXOnXOff	= 3
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount
    {
        SerialStopBitCount_One	= 0,
        SerialStopBitCount_OnePointFive	= 1,
        SerialStopBitCount_Two	= 2
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError
    {
        SerialError_Frame	= 0,
        SerialError_BufferOverrun	= 1,
        SerialError_ReceiveFull	= 2,
        SerialError_ReceiveParity	= 3,
        SerialError_TransmitFull	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange
    {
        SerialPinChange_BreakSignal	= 0,
        SerialPinChange_CarrierDetect	= 1,
        SerialPinChange_ClearToSend	= 2,
        SerialPinChange_DataSetReady	= 3,
        SerialPinChange_RingIndicator	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SerialCommunication_ISerialDeviceStatics[] = L"Windows.Devices.SerialCommunication.ISerialDeviceStatics";
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0012 */
/* [local] */ 

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                /* [v1_enum] */ 
                enum SerialParity
                    {
                        SerialParity_None	= 0,
                        SerialParity_Odd	= 1,
                        SerialParity_Even	= 2,
                        SerialParity_Mark	= 3,
                        SerialParity_Space	= 4
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                /* [v1_enum] */ 
                enum SerialHandshake
                    {
                        SerialHandshake_None	= 0,
                        SerialHandshake_RequestToSend	= 1,
                        SerialHandshake_XOnXOff	= 2,
                        SerialHandshake_RequestToSendXOnXOff	= 3
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                /* [v1_enum] */ 
                enum SerialStopBitCount
                    {
                        SerialStopBitCount_One	= 0,
                        SerialStopBitCount_OnePointFive	= 1,
                        SerialStopBitCount_Two	= 2
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                /* [v1_enum] */ 
                enum SerialError
                    {
                        SerialError_Frame	= 0,
                        SerialError_BufferOverrun	= 1,
                        SerialError_ReceiveFull	= 2,
                        SerialError_ReceiveParity	= 3,
                        SerialError_TransmitFull	= 4
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SerialCommunication {
                
                /* [v1_enum] */ 
                enum SerialPinChange
                    {
                        SerialPinChange_BreakSignal	= 0,
                        SerialPinChange_CarrierDetect	= 1,
                        SerialPinChange_ClearToSend	= 2,
                        SerialPinChange_DataSetReady	= 3,
                        SerialPinChange_RingIndicator	= 4
                    } ;
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0012_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0012_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::SerialCommunication::ISerialDeviceStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace SerialCommunication {
                    
                    MIDL_INTERFACE("058C4A70-0836-4993-AE1A-B61AE3BE056B")
                    ISerialDeviceStatics : public IInspectable
                    {
                    public:
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector( 
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorFromPortName( 
                            /* [in] */ __RPC__in HSTRING portName,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *result) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorFromUsbVidPid( 
                            /* [in] */ UINT16 vendorId,
                            /* [in] */ UINT16 productId,
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *result) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE FromIdAsync( 
                            /* [in] */ __RPC__in HSTRING deviceId,
                            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice **result) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_ISerialDeviceStatics = __uuidof(ISerialDeviceStatics);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * 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_CSerialCommunication_CISerialDeviceStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelector )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelectorFromPortName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [in] */ __RPC__in HSTRING portName,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *result);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceSelectorFromUsbVidPid )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [in] */ UINT16 vendorId,
            /* [in] */ UINT16 productId,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *result);
        
        HRESULT ( STDMETHODCALLTYPE *FromIdAsync )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics * This,
            /* [in] */ __RPC__in HSTRING deviceId,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CDevices__CSerialCommunication__CSerialDevice **result);
        
        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_GetDeviceSelector(This,value)	\
    ( (This)->lpVtbl -> GetDeviceSelector(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_GetDeviceSelectorFromPortName(This,portName,result)	\
    ( (This)->lpVtbl -> GetDeviceSelectorFromPortName(This,portName,result) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_GetDeviceSelectorFromUsbVidPid(This,vendorId,productId,result)	\
    ( (This)->lpVtbl -> GetDeviceSelectorFromUsbVidPid(This,vendorId,productId,result) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_FromIdAsync(This,deviceId,result)	\
    ( (This)->lpVtbl -> FromIdAsync(This,deviceId,result) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0013 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SerialCommunication_IErrorReceivedEventArgs[] = L"Windows.Devices.SerialCommunication.IErrorReceivedEventArgs";
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0013 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0013_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0013_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::SerialCommunication::IErrorReceivedEventArgs */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace SerialCommunication {
                    
                    MIDL_INTERFACE("FCC6BF59-1283-4D8A-BFDF-566B33DDB28F")
                    IErrorReceivedEventArgs : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Error( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::SerialCommunication::SerialError *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IErrorReceivedEventArgs = __uuidof(IErrorReceivedEventArgs);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * 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_CSerialCommunication_CIErrorReceivedEventArgs * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Error )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_get_Error(This,value)	\
    ( (This)->lpVtbl -> get_Error(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0014 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SerialCommunication_IPinChangedEventArgs[] = L"Windows.Devices.SerialCommunication.IPinChangedEventArgs";
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0014 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0014_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::SerialCommunication::IPinChangedEventArgs */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace SerialCommunication {
                    
                    MIDL_INTERFACE("A2BF1DB0-FC9C-4607-93D0-FA5E8343EE22")
                    IPinChangedEventArgs : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PinChange( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::SerialCommunication::SerialPinChange *value) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_IPinChangedEventArgs = __uuidof(IPinChangedEventArgs);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * 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_CSerialCommunication_CIPinChangedEventArgs * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PinChange )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_get_PinChange(This,value)	\
    ( (This)->lpVtbl -> get_PinChange(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0015 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SerialCommunication_ISerialDevice[] = L"Windows.Devices.SerialCommunication.ISerialDevice";
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0015 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0015_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0015_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice */
/* [uuid][object] */ 



/* interface ABI::Windows::Devices::SerialCommunication::ISerialDevice */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Devices {
                namespace SerialCommunication {
                    
                    MIDL_INTERFACE("E187CCC6-2210-414F-B65A-F5553A03372A")
                    ISerialDevice : public IInspectable
                    {
                    public:
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BaudRate( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BaudRate( 
                            /* [in] */ UINT32 value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BreakSignalState( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BreakSignalState( 
                            /* [in] */ boolean value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesReceived( 
                            /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CarrierDetectState( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClearToSendState( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DataBits( 
                            /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DataBits( 
                            /* [in] */ UINT16 value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DataSetReadyState( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handshake( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::SerialCommunication::SerialHandshake *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handshake( 
                            /* [in] */ ABI::Windows::Devices::SerialCommunication::SerialHandshake value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsDataTerminalReadyEnabled( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsDataTerminalReadyEnabled( 
                            /* [in] */ boolean value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsRequestToSendEnabled( 
                            /* [out][retval] */ __RPC__out boolean *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsRequestToSendEnabled( 
                            /* [in] */ boolean value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Parity( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::SerialCommunication::SerialParity *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Parity( 
                            /* [in] */ ABI::Windows::Devices::SerialCommunication::SerialParity value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortName( 
                            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReadTimeout( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Foundation::TimeSpan *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReadTimeout( 
                            /* [in] */ ABI::Windows::Foundation::TimeSpan value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StopBits( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Devices::SerialCommunication::SerialStopBitCount *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_StopBits( 
                            /* [in] */ ABI::Windows::Devices::SerialCommunication::SerialStopBitCount value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsbVendorId( 
                            /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsbProductId( 
                            /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WriteTimeout( 
                            /* [out][retval] */ __RPC__out ABI::Windows::Foundation::TimeSpan *value) = 0;
                        
                        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_WriteTimeout( 
                            /* [in] */ ABI::Windows::Foundation::TimeSpan value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InputStream( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IInputStream **value) = 0;
                        
                        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OutputStream( 
                            /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IOutputStream **value) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE add_ErrorReceived( 
                            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs *reportHandler,
                            /* [out][retval] */ __RPC__out EventRegistrationToken *token) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE remove_ErrorReceived( 
                            /* [in] */ EventRegistrationToken token) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE add_PinChanged( 
                            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs *reportHandler,
                            /* [out][retval] */ __RPC__out EventRegistrationToken *token) = 0;
                        
                        virtual HRESULT STDMETHODCALLTYPE remove_PinChanged( 
                            /* [in] */ EventRegistrationToken token) = 0;
                        
                    };

                    extern const __declspec(selectany) IID & IID_ISerialDevice = __uuidof(ISerialDevice);

                    
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * 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_CSerialCommunication_CISerialDevice * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BaudRate )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BaudRate )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ UINT32 value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BreakSignalState )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BreakSignalState )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesReceived )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CarrierDetectState )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClearToSendState )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataBits )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_DataBits )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ UINT16 value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataSetReadyState )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Handshake )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Handshake )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDataTerminalReadyEnabled )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IsDataTerminalReadyEnabled )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsRequestToSendEnabled )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IsRequestToSendEnabled )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parity )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Parity )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortName )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadTimeout )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CTimeSpan *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReadTimeout )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __x_ABI_CWindows_CFoundation_CTimeSpan value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StopBits )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_StopBits )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsbVendorId )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsbProductId )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteTimeout )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CTimeSpan *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteTimeout )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __x_ABI_CWindows_CFoundation_CTimeSpan value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InputStream )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIInputStream **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OutputStream )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIOutputStream **value);
        
        HRESULT ( STDMETHODCALLTYPE *add_ErrorReceived )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CErrorReceivedEventArgs *reportHandler,
            /* [out][retval] */ __RPC__out EventRegistrationToken *token);
        
        HRESULT ( STDMETHODCALLTYPE *remove_ErrorReceived )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ EventRegistrationToken token);
        
        HRESULT ( STDMETHODCALLTYPE *add_PinChanged )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ __RPC__in_opt __FITypedEventHandler_2_Windows__CDevices__CSerialCommunication__CSerialDevice_Windows__CDevices__CSerialCommunication__CPinChangedEventArgs *reportHandler,
            /* [out][retval] */ __RPC__out EventRegistrationToken *token);
        
        HRESULT ( STDMETHODCALLTYPE *remove_PinChanged )( 
            __RPC__in __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice * This,
            /* [in] */ EventRegistrationToken token);
        
        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_BaudRate(This,value)	\
    ( (This)->lpVtbl -> get_BaudRate(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_BaudRate(This,value)	\
    ( (This)->lpVtbl -> put_BaudRate(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_BreakSignalState(This,value)	\
    ( (This)->lpVtbl -> get_BreakSignalState(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_BreakSignalState(This,value)	\
    ( (This)->lpVtbl -> put_BreakSignalState(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_BytesReceived(This,value)	\
    ( (This)->lpVtbl -> get_BytesReceived(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_CarrierDetectState(This,value)	\
    ( (This)->lpVtbl -> get_CarrierDetectState(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_ClearToSendState(This,value)	\
    ( (This)->lpVtbl -> get_ClearToSendState(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_DataBits(This,value)	\
    ( (This)->lpVtbl -> get_DataBits(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_DataBits(This,value)	\
    ( (This)->lpVtbl -> put_DataBits(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_DataSetReadyState(This,value)	\
    ( (This)->lpVtbl -> get_DataSetReadyState(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_Handshake(This,value)	\
    ( (This)->lpVtbl -> get_Handshake(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_Handshake(This,value)	\
    ( (This)->lpVtbl -> put_Handshake(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_IsDataTerminalReadyEnabled(This,value)	\
    ( (This)->lpVtbl -> get_IsDataTerminalReadyEnabled(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_IsDataTerminalReadyEnabled(This,value)	\
    ( (This)->lpVtbl -> put_IsDataTerminalReadyEnabled(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_IsRequestToSendEnabled(This,value)	\
    ( (This)->lpVtbl -> get_IsRequestToSendEnabled(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_IsRequestToSendEnabled(This,value)	\
    ( (This)->lpVtbl -> put_IsRequestToSendEnabled(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_Parity(This,value)	\
    ( (This)->lpVtbl -> get_Parity(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_Parity(This,value)	\
    ( (This)->lpVtbl -> put_Parity(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_PortName(This,value)	\
    ( (This)->lpVtbl -> get_PortName(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_ReadTimeout(This,value)	\
    ( (This)->lpVtbl -> get_ReadTimeout(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_ReadTimeout(This,value)	\
    ( (This)->lpVtbl -> put_ReadTimeout(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_StopBits(This,value)	\
    ( (This)->lpVtbl -> get_StopBits(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_StopBits(This,value)	\
    ( (This)->lpVtbl -> put_StopBits(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_UsbVendorId(This,value)	\
    ( (This)->lpVtbl -> get_UsbVendorId(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_UsbProductId(This,value)	\
    ( (This)->lpVtbl -> get_UsbProductId(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_WriteTimeout(This,value)	\
    ( (This)->lpVtbl -> get_WriteTimeout(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_put_WriteTimeout(This,value)	\
    ( (This)->lpVtbl -> put_WriteTimeout(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_InputStream(This,value)	\
    ( (This)->lpVtbl -> get_InputStream(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_get_OutputStream(This,value)	\
    ( (This)->lpVtbl -> get_OutputStream(This,value) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_add_ErrorReceived(This,reportHandler,token)	\
    ( (This)->lpVtbl -> add_ErrorReceived(This,reportHandler,token) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_remove_ErrorReceived(This,token)	\
    ( (This)->lpVtbl -> remove_ErrorReceived(This,token) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_add_PinChanged(This,reportHandler,token)	\
    ( (This)->lpVtbl -> add_PinChanged(This,reportHandler,token) ) 

#define __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_remove_PinChanged(This,token)	\
    ( (This)->lpVtbl -> remove_PinChanged(This,token) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0016 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Devices_SerialCommunication_SerialDevice_DEFINED
#define RUNTIMECLASS_Windows_Devices_SerialCommunication_SerialDevice_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SerialCommunication_SerialDevice[] = L"Windows.Devices.SerialCommunication.SerialDevice";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_SerialCommunication_ErrorReceivedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SerialCommunication_ErrorReceivedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SerialCommunication_ErrorReceivedEventArgs[] = L"Windows.Devices.SerialCommunication.ErrorReceivedEventArgs";
#endif
#ifndef RUNTIMECLASS_Windows_Devices_SerialCommunication_PinChangedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SerialCommunication_PinChangedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SerialCommunication_PinChangedEventArgs[] = L"Windows.Devices.SerialCommunication.PinChangedEventArgs";
#endif


/* interface __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0016 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0016_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Edevices2Eserialcommunication_0000_0016_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


