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

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

/* Forward Declarations */
#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;

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

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

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

#endif // ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice;

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

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice;

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

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs;

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

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* sender,
        __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs;

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

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* sender,
        __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs_INTERFACE_DEFINED__
    
typedef enum __x_ABI_CWindows_CFoundation_CAsyncStatus __x_ABI_CWindows_CFoundation_CAsyncStatus;

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan;

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIInputStream __x_ABI_CWindows_CStorage_CStreams_CIInputStream;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIOutputStream __x_ABI_CWindows_CStorage_CStreams_CIOutputStream;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError;

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake;

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity;

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange;

typedef enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount;

enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError
    {
        __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError_Frame = 0,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError_BufferOverrun = 1,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError_ReceiveFull = 2,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError_ReceiveParity = 3,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialError_TransmitFull = 4,
};

enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake
    {
        __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake_None = 0,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake_RequestToSend = 1,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake_XOnXOff = 2,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake_RequestToSendXOnXOff = 3,
};

enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity
    {
        __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity_None = 0,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity_Odd = 1,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity_Even = 2,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity_Mark = 3,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity_Space = 4,
};

enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange
    {
        __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange_BreakSignal = 0,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange_CarrierDetect = 1,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange_ClearToSend = 2,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange_DataSetReady = 3,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialPinChange_RingIndicator = 4,
};

enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount
    {
        __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount_One = 0,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount_OnePointFive = 1,
    __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount_Two = 2,
};

#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Error)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs* This,
        enum __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;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIErrorReceivedEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_PinChange)(__x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs* This,
        enum __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;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CIPinChangedEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_BaudRate)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_BaudRate)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT32 value);
    HRESULT (STDMETHODCALLTYPE* get_BreakSignalState)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_BreakSignalState)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_BytesReceived)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_CarrierDetectState)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_ClearToSendState)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_DataBits)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* put_DataBits)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT16 value);
    HRESULT (STDMETHODCALLTYPE* get_DataSetReadyState)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_Handshake)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake* value);
    HRESULT (STDMETHODCALLTYPE* put_Handshake)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialHandshake value);
    HRESULT (STDMETHODCALLTYPE* get_IsDataTerminalReadyEnabled)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_IsDataTerminalReadyEnabled)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_IsRequestToSendEnabled)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_IsRequestToSendEnabled)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_Parity)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity* value);
    HRESULT (STDMETHODCALLTYPE* put_Parity)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialParity value);
    HRESULT (STDMETHODCALLTYPE* get_PortName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_ReadTimeout)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);
    HRESULT (STDMETHODCALLTYPE* put_ReadTimeout)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan value);
    HRESULT (STDMETHODCALLTYPE* get_StopBits)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount* value);
    HRESULT (STDMETHODCALLTYPE* put_StopBits)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        enum __x_ABI_CWindows_CDevices_CSerialCommunication_CSerialStopBitCount value);
    HRESULT (STDMETHODCALLTYPE* get_UsbVendorId)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsbProductId)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_WriteTimeout)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);
    HRESULT (STDMETHODCALLTYPE* put_WriteTimeout)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan value);
    HRESULT (STDMETHODCALLTYPE* get_InputStream)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        __x_ABI_CWindows_CStorage_CStreams_CIInputStream** value);
    HRESULT (STDMETHODCALLTYPE* get_OutputStream)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        __x_ABI_CWindows_CStorage_CStreams_CIOutputStream** value);
    HRESULT (STDMETHODCALLTYPE* add_ErrorReceived)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CErrorReceivedEventArgs* reportHandler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_ErrorReceived)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        EventRegistrationToken token);
    HRESULT (STDMETHODCALLTYPE* add_PinChanged)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CSerialCommunication__CSerialDevice___x_ABI_CWindows__CDevices__CSerialCommunication__CPinChangedEventArgs* reportHandler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_PinChanged)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice* This,
        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;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorFromPortName)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
        HSTRING portName,
        HSTRING* result);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorFromUsbVidPid)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
        UINT16 vendorId,
        UINT16 productId,
        HSTRING* result);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics* This,
        HSTRING deviceId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__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;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSerialCommunication_CISerialDeviceStatics_INTERFACE_DEFINED__) */
    
