//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Devices.PointOfService.idl";
import "Windows.Graphics.Imaging.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace PointOfService
        {
            runtimeclass BarcodeScannerReport;

            runtimeclass BarcodeSymbologyAttributes;

            runtimeclass UnifiedPosErrorData;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        interface IAsyncAction;

        interface IClosable;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Imaging
        {
            typedef enum BitmapPixelFormat BitmapPixelFormat;

            typedef struct BitmapSize BitmapSize;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace PointOfService
        {
            namespace Provider
            {
                typedef enum BarcodeScannerTriggerState BarcodeScannerTriggerState;

                interface IBarcodeScannerDisableScannerRequest;

                interface IBarcodeScannerDisableScannerRequest2;

                interface IBarcodeScannerDisableScannerRequestEventArgs;

                interface IBarcodeScannerEnableScannerRequest;

                interface IBarcodeScannerEnableScannerRequest2;

                interface IBarcodeScannerEnableScannerRequestEventArgs;

                interface IBarcodeScannerFrameReader;

                interface IBarcodeScannerFrameReaderFrameArrivedEventArgs;

                interface IBarcodeScannerGetSymbologyAttributesRequest;

                interface IBarcodeScannerGetSymbologyAttributesRequest2;

                interface IBarcodeScannerGetSymbologyAttributesRequestEventArgs;

                interface IBarcodeScannerHideVideoPreviewRequest;

                interface IBarcodeScannerHideVideoPreviewRequest2;

                interface IBarcodeScannerHideVideoPreviewRequestEventArgs;

                interface IBarcodeScannerProviderConnection;

                interface IBarcodeScannerProviderConnection2;

                interface IBarcodeScannerProviderTriggerDetails;

                interface IBarcodeScannerSetActiveSymbologiesRequest;

                interface IBarcodeScannerSetActiveSymbologiesRequest2;

                interface IBarcodeScannerSetActiveSymbologiesRequestEventArgs;

                interface IBarcodeScannerSetSymbologyAttributesRequest;

                interface IBarcodeScannerSetSymbologyAttributesRequest2;

                interface IBarcodeScannerSetSymbologyAttributesRequestEventArgs;

                interface IBarcodeScannerStartSoftwareTriggerRequest;

                interface IBarcodeScannerStartSoftwareTriggerRequest2;

                interface IBarcodeScannerStartSoftwareTriggerRequestEventArgs;

                interface IBarcodeScannerStopSoftwareTriggerRequest;

                interface IBarcodeScannerStopSoftwareTriggerRequest2;

                interface IBarcodeScannerStopSoftwareTriggerRequestEventArgs;

                interface IBarcodeScannerVideoFrame;

                interface IBarcodeSymbologyAttributesBuilder;

                runtimeclass BarcodeScannerDisableScannerRequest;

                runtimeclass BarcodeScannerDisableScannerRequestEventArgs;

                runtimeclass BarcodeScannerEnableScannerRequest;

                runtimeclass BarcodeScannerEnableScannerRequestEventArgs;

                runtimeclass BarcodeScannerFrameReader;

                runtimeclass BarcodeScannerFrameReaderFrameArrivedEventArgs;

                runtimeclass BarcodeScannerGetSymbologyAttributesRequest;

                runtimeclass BarcodeScannerGetSymbologyAttributesRequestEventArgs;

                runtimeclass BarcodeScannerHideVideoPreviewRequest;

                runtimeclass BarcodeScannerHideVideoPreviewRequestEventArgs;

                runtimeclass BarcodeScannerProviderConnection;

                runtimeclass BarcodeScannerProviderTriggerDetails;

                runtimeclass BarcodeScannerSetActiveSymbologiesRequest;

                runtimeclass BarcodeScannerSetActiveSymbologiesRequestEventArgs;

                runtimeclass BarcodeScannerSetSymbologyAttributesRequest;

                runtimeclass BarcodeScannerSetSymbologyAttributesRequestEventArgs;

                runtimeclass BarcodeScannerStartSoftwareTriggerRequest;

                runtimeclass BarcodeScannerStartSoftwareTriggerRequestEventArgs;

                runtimeclass BarcodeScannerStopSoftwareTriggerRequest;

                runtimeclass BarcodeScannerStopSoftwareTriggerRequestEventArgs;

                runtimeclass BarcodeScannerVideoFrame;

                runtimeclass BarcodeSymbologyAttributesBuilder;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Devices
    {
        namespace PointOfService
        {
            namespace Provider
            {
                declare
                {
                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerVideoFrame*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*, Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReaderFrameArrivedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequestEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequestEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace PointOfService
        {
            namespace Provider
            {
                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                enum BarcodeScannerTriggerState
                {
                    Released = 0,
                    Pressed  = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequest)]
                [uuid(88ECF7C0-37B9-4275-8E77-C8E52AE5A9C8)]
                interface IBarcodeScannerDisableScannerRequest : IInspectable
                {
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequest)]
                [uuid(CCDFE625-65C3-4CCC-B457-F39C7A9EA60D)]
                interface IBarcodeScannerDisableScannerRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequestEventArgs)]
                [uuid(7006E142-E802-46F5-B604-352A15CE9232)]
                interface IBarcodeScannerDisableScannerRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequest)]
                [uuid(C0B3E9BA-816A-452B-BD77-B7E453EC446D)]
                interface IBarcodeScannerEnableScannerRequest : IInspectable
                {
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequest)]
                [uuid(71A4F2A8-9905-41AC-9121-B645916A84A1)]
                interface IBarcodeScannerEnableScannerRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequestEventArgs)]
                [uuid(956C9419-7B4E-4451-8C41-8E10CFBC5B41)]
                interface IBarcodeScannerEnableScannerRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader)]
                [uuid(DBC72B07-64C3-482B-93C8-65FB33C22208)]
                interface IBarcodeScannerFrameReader : IInspectable
                {
                    HRESULT StartAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                    HRESULT StopAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                    HRESULT TryAcquireLatestFrameAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerVideoFrame*>** operation);
                    [propget] HRESULT Connection([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection** value);
                    [eventadd] HRESULT FrameArrived([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*, Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReaderFrameArrivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT FrameArrived([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReaderFrameArrivedEventArgs)]
                [uuid(B0BBD604-54FD-436D-8629-712E787223DD)]
                interface IBarcodeScannerFrameReaderFrameArrivedEventArgs : IInspectable
                {
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequest)]
                [uuid(9774C46A-58E4-4C5F-B8E9-E41467632700)]
                interface IBarcodeScannerGetSymbologyAttributesRequest : IInspectable
                {
                    [propget] HRESULT Symbology([out] [retval] UINT32* value);
                    HRESULT ReportCompletedAsync([in] Windows.Devices.PointOfService.BarcodeSymbologyAttributes* attributes, [out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequest)]
                [uuid(6A6A2B13-75A8-49FB-B852-BFB93D760AF7)]
                interface IBarcodeScannerGetSymbologyAttributesRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequestEventArgs)]
                [uuid(7F89DE3E-FB5D-493C-B402-356B24D574A6)]
                interface IBarcodeScannerGetSymbologyAttributesRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequest)]
                [uuid(FA4EBE7F-6670-40E1-B90B-BB10D8D425FA)]
                interface IBarcodeScannerHideVideoPreviewRequest : IInspectable
                {
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequest)]
                [uuid(7E28435D-9814-431D-A2F2-D6248C5AD4B5)]
                interface IBarcodeScannerHideVideoPreviewRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequestEventArgs)]
                [uuid(16A281FC-D6BE-4BC7-9DF1-33741F3EADEA)]
                interface IBarcodeScannerHideVideoPreviewRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection)]
                [uuid(B44ACBED-0B3A-4FA3-86C5-491EA30780EB)]
                interface IBarcodeScannerProviderConnection : IInspectable
                {
                    [propget] HRESULT Id([out] [retval] HSTRING* value);
                    [propget] HRESULT VideoDeviceId([out] [retval] HSTRING* value);
                    [propget] HRESULT SupportedSymbologies([out] [retval] Windows.Foundation.Collections.IVector<UINT32>** value);
                    [propget] HRESULT CompanyName([out] [retval] HSTRING* value);
                    [propput] HRESULT CompanyName([in] HSTRING value);
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propput] HRESULT Name([in] HSTRING value);
                    [propget] HRESULT Version([out] [retval] HSTRING* value);
                    [propput] HRESULT Version([in] HSTRING value);
                    HRESULT Start();
                    HRESULT ReportScannedDataAsync([in] Windows.Devices.PointOfService.BarcodeScannerReport* report, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    HRESULT ReportTriggerStateAsync([in] Windows.Devices.PointOfService.Provider.BarcodeScannerTriggerState state, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportErrorAsync")] HRESULT ReportErrorAsync([in] Windows.Devices.PointOfService.UnifiedPosErrorData* errorData, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportErrorAsync")] HRESULT ReportErrorAsyncWithScanReport([in] Windows.Devices.PointOfService.UnifiedPosErrorData* errorData, [in] boolean isRetriable, [in] Windows.Devices.PointOfService.BarcodeScannerReport* scanReport, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [eventadd] HRESULT EnableScannerRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerEnableScannerRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT EnableScannerRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT DisableScannerRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerDisableScannerRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DisableScannerRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT SetActiveSymbologiesRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SetActiveSymbologiesRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT StartSoftwareTriggerRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT StartSoftwareTriggerRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT StopSoftwareTriggerRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT StopSoftwareTriggerRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT GetBarcodeSymbologyAttributesRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerGetSymbologyAttributesRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT GetBarcodeSymbologyAttributesRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT SetBarcodeSymbologyAttributesRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SetBarcodeSymbologyAttributesRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT HideVideoPreviewRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection*, Windows.Devices.PointOfService.Provider.BarcodeScannerHideVideoPreviewRequestEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT HideVideoPreviewRequested([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection)]
                [uuid(BE9B53CD-1134-418C-A06B-04423A73F3D7)]
                interface IBarcodeScannerProviderConnection2 : IInspectable
                {
                    [overload("CreateFrameReaderAsync")] HRESULT CreateFrameReaderAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*>** operation);
                    [overload("CreateFrameReaderAsync")] HRESULT CreateFrameReaderWithFormatAsync([in] Windows.Graphics.Imaging.BitmapPixelFormat preferredFormat, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*>** operation);
                    [overload("CreateFrameReaderAsync")] HRESULT CreateFrameReaderWithFormatAndSizeAsync([in] Windows.Graphics.Imaging.BitmapPixelFormat preferredFormat, [in] Windows.Graphics.Imaging.BitmapSize preferredSize, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.PointOfService.Provider.BarcodeScannerFrameReader*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerProviderTriggerDetails)]
                [uuid(50856D82-24E3-48CE-99C7-70AAC1CBC9F7)]
                interface IBarcodeScannerProviderTriggerDetails : IInspectable
                {
                    [propget] HRESULT Connection([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerProviderConnection** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequest)]
                [uuid(DB3F32B9-F7DA-41A1-9F79-07BCD95F0BDF)]
                interface IBarcodeScannerSetActiveSymbologiesRequest : IInspectable
                {
                    [propget] HRESULT Symbologies([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** value);
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequest)]
                [uuid(F5FF6EDF-FA9A-4749-B11B-E8FCCB75BC6B)]
                interface IBarcodeScannerSetActiveSymbologiesRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequestEventArgs)]
                [uuid(06305AFA-7BF6-4D52-801A-330272F60AE1)]
                interface IBarcodeScannerSetActiveSymbologiesRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerSetActiveSymbologiesRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequest)]
                [uuid(32FB814F-A37F-48B0-ACEA-DCE1480F12AE)]
                interface IBarcodeScannerSetSymbologyAttributesRequest : IInspectable
                {
                    [propget] HRESULT Symbology([out] [retval] UINT32* value);
                    [propget] HRESULT Attributes([out] [retval] Windows.Devices.PointOfService.BarcodeSymbologyAttributes** value);
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequest)]
                [uuid(DFFBBFC1-DBA8-4B77-BE1E-B56CD72F65B3)]
                interface IBarcodeScannerSetSymbologyAttributesRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequestEventArgs)]
                [uuid(B2B89809-9824-47D4-85BD-D0077BAA7BD2)]
                interface IBarcodeScannerSetSymbologyAttributesRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerSetSymbologyAttributesRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequest)]
                [uuid(E3FA7B27-FF62-4454-AF4A-CB6144A3E3F7)]
                interface IBarcodeScannerStartSoftwareTriggerRequest : IInspectable
                {
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequest)]
                [uuid(EB72A25C-6658-4765-A68E-327482653DEB)]
                interface IBarcodeScannerStartSoftwareTriggerRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequestEventArgs)]
                [uuid(2305D843-C88F-4F3B-8C3B-D3DF071051EC)]
                interface IBarcodeScannerStartSoftwareTriggerRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerStartSoftwareTriggerRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequest)]
                [uuid(6F9FAF35-E287-4CA8-B70D-5A91D694F668)]
                interface IBarcodeScannerStopSoftwareTriggerRequest : IInspectable
                {
                    HRESULT ReportCompletedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                    HRESULT ReportFailedAsync([out] [retval] Windows.Foundation.IAsyncAction** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequest)]
                [uuid(CB57C5DD-FE50-49F8-A0B4-BDC230814DA2)]
                interface IBarcodeScannerStopSoftwareTriggerRequest2 : IInspectable
                {
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAsync([in] INT32 reason, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                    [overload("ReportFailedAsync")] HRESULT ReportFailedWithFailedReasonAndDescriptionAsync([in] INT32 reason, [in] HSTRING failedReasonDescription, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequestEventArgs)]
                [uuid(EAC34450-4EB7-481A-9273-147A273B99B8)]
                interface IBarcodeScannerStopSoftwareTriggerRequestEventArgs : IInspectable
                {
                    [propget] HRESULT Request([out] [retval] Windows.Devices.PointOfService.Provider.BarcodeScannerStopSoftwareTriggerRequest** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeScannerVideoFrame)]
                [uuid(7E585248-9DF7-4121-A175-801D8000112E)]
                interface IBarcodeScannerVideoFrame : IInspectable
                {
                    [propget] HRESULT Format([out] [retval] Windows.Graphics.Imaging.BitmapPixelFormat* value);
                    [propget] HRESULT Width([out] [retval] UINT32* value);
                    [propget] HRESULT Height([out] [retval] UINT32* value);
                    [propget] HRESULT PixelData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.Devices.PointOfService.Provider.BarcodeSymbologyAttributesBuilder)]
                [uuid(C57B0CBF-E4F5-40B9-84CF-E63FBAEA42B4)]
                interface IBarcodeSymbologyAttributesBuilder : IInspectable
                {
                    [propget] HRESULT IsCheckDigitValidationSupported([out] [retval] boolean* value);
                    [propput] HRESULT IsCheckDigitValidationSupported([in] boolean value);
                    [propget] HRESULT IsCheckDigitTransmissionSupported([out] [retval] boolean* value);
                    [propput] HRESULT IsCheckDigitTransmissionSupported([in] boolean value);
                    [propget] HRESULT IsDecodeLengthSupported([out] [retval] boolean* value);
                    [propput] HRESULT IsDecodeLengthSupported([in] boolean value);
                    HRESULT CreateAttributes([out] [retval] Windows.Devices.PointOfService.BarcodeSymbologyAttributes** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerDisableScannerRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerDisableScannerRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerDisableScannerRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerDisableScannerRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerDisableScannerRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerEnableScannerRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerEnableScannerRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerEnableScannerRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerEnableScannerRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerEnableScannerRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerFrameReader
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerFrameReader;
                    interface Windows.Foundation.IClosable;
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerFrameReaderFrameArrivedEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerFrameReaderFrameArrivedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerGetSymbologyAttributesRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerGetSymbologyAttributesRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerGetSymbologyAttributesRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerGetSymbologyAttributesRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerGetSymbologyAttributesRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerHideVideoPreviewRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerHideVideoPreviewRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerHideVideoPreviewRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerHideVideoPreviewRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerHideVideoPreviewRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerProviderConnection
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerProviderConnection;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerProviderConnection2;
                    interface Windows.Foundation.IClosable;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerProviderTriggerDetails
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerProviderTriggerDetails;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerSetActiveSymbologiesRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetActiveSymbologiesRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetActiveSymbologiesRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerSetActiveSymbologiesRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetActiveSymbologiesRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerSetSymbologyAttributesRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetSymbologyAttributesRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetSymbologyAttributesRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerSetSymbologyAttributesRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerSetSymbologyAttributesRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerStartSoftwareTriggerRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStartSoftwareTriggerRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStartSoftwareTriggerRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerStartSoftwareTriggerRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStartSoftwareTriggerRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerStopSoftwareTriggerRequest
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStopSoftwareTriggerRequest;
                    [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStopSoftwareTriggerRequest2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerStopSoftwareTriggerRequestEventArgs
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerStopSoftwareTriggerRequestEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [marshaling_behavior(agile)]
                runtimeclass BarcodeScannerVideoFrame
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeScannerVideoFrame;
                    interface Windows.Foundation.IClosable;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 6.0)]
                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BarcodeSymbologyAttributesBuilder
                {
                    [default] interface Windows.Devices.PointOfService.Provider.IBarcodeSymbologyAttributesBuilder;
                }
            }
        }
    }
}
