//
// 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.Bluetooth.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            typedef enum BluetoothAddressType BluetoothAddressType;

            typedef enum BluetoothError BluetoothError;

            runtimeclass BluetoothSignalStrengthFilter;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Advertisement
            {
                typedef enum BluetoothLEAdvertisementFlags BluetoothLEAdvertisementFlags;

                typedef enum BluetoothLEAdvertisementPhyType BluetoothLEAdvertisementPhyType;

                typedef enum BluetoothLEAdvertisementPublisherStatus BluetoothLEAdvertisementPublisherStatus;

                typedef enum BluetoothLEAdvertisementType BluetoothLEAdvertisementType;

                typedef enum BluetoothLEAdvertisementWatcherStatus BluetoothLEAdvertisementWatcherStatus;

                typedef enum BluetoothLEScanningMode BluetoothLEScanningMode;

                interface IBluetoothLEAdvertisement;

                interface IBluetoothLEAdvertisementBytePattern;

                interface IBluetoothLEAdvertisementBytePatternFactory;

                interface IBluetoothLEAdvertisementDataSection;

                interface IBluetoothLEAdvertisementDataSectionFactory;

                interface IBluetoothLEAdvertisementDataTypesStatics;

                interface IBluetoothLEAdvertisementFilter;

                interface IBluetoothLEAdvertisementPublisher;

                interface IBluetoothLEAdvertisementPublisher2;

                interface IBluetoothLEAdvertisementPublisher3;

                interface IBluetoothLEAdvertisementPublisherFactory;

                interface IBluetoothLEAdvertisementPublisherStatusChangedEventArgs;

                interface IBluetoothLEAdvertisementPublisherStatusChangedEventArgs2;

                interface IBluetoothLEAdvertisementReceivedEventArgs;

                interface IBluetoothLEAdvertisementReceivedEventArgs2;

                interface IBluetoothLEAdvertisementReceivedEventArgs3;

                interface IBluetoothLEAdvertisementScanParameters;

                interface IBluetoothLEAdvertisementScanParametersStatics;

                interface IBluetoothLEAdvertisementWatcher;

                interface IBluetoothLEAdvertisementWatcher2;

                interface IBluetoothLEAdvertisementWatcher3;

                interface IBluetoothLEAdvertisementWatcherFactory;

                interface IBluetoothLEAdvertisementWatcherStoppedEventArgs;

                interface IBluetoothLEManufacturerData;

                interface IBluetoothLEManufacturerDataFactory;

                runtimeclass BluetoothLEAdvertisement;

                runtimeclass BluetoothLEAdvertisementBytePattern;

                runtimeclass BluetoothLEAdvertisementDataSection;

                runtimeclass BluetoothLEAdvertisementDataTypes;

                runtimeclass BluetoothLEAdvertisementFilter;

                runtimeclass BluetoothLEAdvertisementPublisher;

                runtimeclass BluetoothLEAdvertisementPublisherStatusChangedEventArgs;

                runtimeclass BluetoothLEAdvertisementReceivedEventArgs;

                runtimeclass BluetoothLEAdvertisementScanParameters;

                runtimeclass BluetoothLEAdvertisementWatcher;

                runtimeclass BluetoothLEAdvertisementWatcherStoppedEventArgs;

                runtimeclass BluetoothLEManufacturerData;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Advertisement
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>;

                    interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern*>;

                    interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>;

                    interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>;

                    interface Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Advertisement
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [flags]
                enum BluetoothLEAdvertisementFlags
                {
                    None                      = 0x0,
                    LimitedDiscoverableMode   = 0x1,
                    GeneralDiscoverableMode   = 0x2,
                    ClassicNotSupported       = 0x4,
                    DualModeControllerCapable = 0x8,
                    DualModeHostCapable       = 0x10
                };

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                enum BluetoothLEAdvertisementPhyType
                {
                    Unspecified  = 0,
                    Uncoded1MPhy = 1,
                    Uncoded2MPhy = 2,
                    CodedPhy     = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum BluetoothLEAdvertisementPublisherStatus
                {
                    Created  = 0,
                    Waiting  = 1,
                    Started  = 2,
                    Stopping = 3,
                    Stopped  = 4,
                    Aborted  = 5
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum BluetoothLEAdvertisementType
                {
                    ConnectableUndirected    = 0,
                    ConnectableDirected      = 1,
                    ScannableUndirected      = 2,
                    NonConnectableUndirected = 3,
                    ScanResponse             = 4,
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                    Extended                 = 5
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum BluetoothLEAdvertisementWatcherStatus
                {
                    Created  = 0,
                    Started  = 1,
                    Stopping = 2,
                    Stopped  = 3,
                    Aborted  = 4
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum BluetoothLEScanningMode
                {
                    Passive = 0,
                    Active  = 1,
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                    None    = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement)]
                [uuid(066FB2B7-33D1-4E7D-8367-CF81D0F79653)]
                interface IBluetoothLEAdvertisement : IInspectable
                {
                    [propget] HRESULT Flags([out] [retval] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>** value);
                    [propput] HRESULT Flags([in] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>* value);
                    [propget] HRESULT LocalName([out] [retval] HSTRING* value);
                    [propput] HRESULT LocalName([in] HSTRING value);
                    [propget] HRESULT ServiceUuids([out] [retval] Windows.Foundation.Collections.IVector<GUID>** value);
                    [propget] HRESULT ManufacturerData([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>** value);
                    [propget] HRESULT DataSections([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>** value);
                    HRESULT GetManufacturerDataByCompanyId([in] UINT16 companyId, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>** dataList);
                    HRESULT GetSectionsByType([in] BYTE type, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>** sectionList);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern)]
                [uuid(FBFAD7F2-B9C5-4A08-BC51-502F8EF68A79)]
                interface IBluetoothLEAdvertisementBytePattern : IInspectable
                {
                    [propget] HRESULT DataType([out] [retval] BYTE* value);
                    [propput] HRESULT DataType([in] BYTE value);
                    [propget] HRESULT Offset([out] [retval] INT16* value);
                    [propput] HRESULT Offset([in] INT16 value);
                    [propget] HRESULT Data([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern)]
                [uuid(C2E24D73-FD5C-4EC3-BE2A-9CA6FA11B7BD)]
                interface IBluetoothLEAdvertisementBytePatternFactory : IInspectable
                {
                    HRESULT Create([in] BYTE dataType, [in] INT16 offset, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection)]
                [uuid(D7213314-3A43-40F9-B6F0-92BFEFC34AE3)]
                interface IBluetoothLEAdvertisementDataSection : IInspectable
                {
                    [propget] HRESULT DataType([out] [retval] BYTE* value);
                    [propput] HRESULT DataType([in] BYTE value);
                    [propget] HRESULT Data([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection)]
                [uuid(E7A40942-A845-4045-BF7E-3E9971DB8A6B)]
                interface IBluetoothLEAdvertisementDataSectionFactory : IInspectable
                {
                    HRESULT Create([in] BYTE dataType, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataTypes)]
                [uuid(3BB6472F-0606-434B-A76E-74159F0684D3)]
                interface IBluetoothLEAdvertisementDataTypesStatics : IInspectable
                {
                    [propget] HRESULT Flags([out] [retval] BYTE* value);
                    [propget] HRESULT IncompleteService16BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT CompleteService16BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT IncompleteService32BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT CompleteService32BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT IncompleteService128BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT CompleteService128BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ShortenedLocalName([out] [retval] BYTE* value);
                    [propget] HRESULT CompleteLocalName([out] [retval] BYTE* value);
                    [propget] HRESULT TxPowerLevel([out] [retval] BYTE* value);
                    [propget] HRESULT PeripheralConnectionIntervalRange([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceSolicitation16BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceSolicitation32BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceSolicitation128BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceData16BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceData32BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT ServiceData128BitUuids([out] [retval] BYTE* value);
                    [propget] HRESULT PublicTargetAddress([out] [retval] BYTE* value);
                    [propget] HRESULT RandomTargetAddress([out] [retval] BYTE* value);
                    [propget] HRESULT Appearance([out] [retval] BYTE* value);
                    [propget] HRESULT AdvertisingInterval([out] [retval] BYTE* value);
                    [propget] HRESULT ManufacturerSpecificData([out] [retval] BYTE* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter)]
                [uuid(131EB0D3-D04E-47B1-837E-49405BF6F80F)]
                interface IBluetoothLEAdvertisementFilter : IInspectable
                {
                    [propget] HRESULT Advertisement([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement** value);
                    [propput] HRESULT Advertisement([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement* value);
                    [propget] HRESULT BytePatterns([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher)]
                [uuid(CDE820F9-D9FA-43D6-A264-DDD8B7DA8B78)]
                interface IBluetoothLEAdvertisementPublisher : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatus* value);
                    [propget] HRESULT Advertisement([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement** value);
                    HRESULT Start();
                    HRESULT Stop();
                    [eventadd] HRESULT StatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT StatusChanged([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher)]
                [uuid(FBDB545E-56F1-510F-A434-217FBD9E7BD2)]
                interface IBluetoothLEAdvertisementPublisher2 : IInspectable
                {
                    [propget] HRESULT PreferredTransmitPowerLevelInDBm([out] [retval] Windows.Foundation.IReference<INT16>** value);
                    [propput] HRESULT PreferredTransmitPowerLevelInDBm([in] Windows.Foundation.IReference<INT16>* value);
                    [propget] HRESULT UseExtendedAdvertisement([out] [retval] boolean* value);
                    [propput] HRESULT UseExtendedAdvertisement([in] boolean value);
                    [propget] HRESULT IsAnonymous([out] [retval] boolean* value);
                    [propput] HRESULT IsAnonymous([in] boolean value);
                    [propget] HRESULT IncludeTransmitPowerLevel([out] [retval] boolean* value);
                    [propput] HRESULT IncludeTransmitPowerLevel([in] boolean value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher)]
                [uuid(1CFF3902-61EC-5776-AB86-9B41F94B1E66)]
                interface IBluetoothLEAdvertisementPublisher3 : IInspectable
                {
                    [propget] HRESULT PrimaryPhy([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType* value);
                    [propput] HRESULT PrimaryPhy([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType value);
                    [propget] HRESULT SecondaryPhy([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType* value);
                    [propput] HRESULT SecondaryPhy([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher)]
                [uuid(5C5F065E-B863-4981-A1AF-1C544D8B0C0D)]
                interface IBluetoothLEAdvertisementPublisherFactory : IInspectable
                {
                    HRESULT Create([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement* advertisement, [out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisher** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs)]
                [uuid(09C2BD9F-2DFF-4B23-86EE-0D14FB94AEAE)]
                interface IBluetoothLEAdvertisementPublisherStatusChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatus* value);
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatusChangedEventArgs)]
                [uuid(8F62790E-DC88-5C8B-B34E-10B321850F88)]
                interface IBluetoothLEAdvertisementPublisherStatusChangedEventArgs2 : IInspectable
                {
                    [propget] HRESULT SelectedTransmitPowerLevelInDBm([out] [retval] Windows.Foundation.IReference<INT16>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs)]
                [uuid(27987DDF-E596-41BE-8D43-9E6731D4A913)]
                interface IBluetoothLEAdvertisementReceivedEventArgs : IInspectable
                {
                    [propget] HRESULT RawSignalStrengthInDBm([out] [retval] INT16* value);
                    [propget] HRESULT BluetoothAddress([out] [retval] UINT64* value);
                    [propget] HRESULT AdvertisementType([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementType* value);
                    [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.DateTime* value);
                    [propget] HRESULT Advertisement([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs)]
                [uuid(12D9C87B-0399-5F0E-A348-53B02B6B162E)]
                interface IBluetoothLEAdvertisementReceivedEventArgs2 : IInspectable
                {
                    [propget] HRESULT BluetoothAddressType([out] [retval] Windows.Devices.Bluetooth.BluetoothAddressType* value);
                    [propget] HRESULT TransmitPowerLevelInDBm([out] [retval] Windows.Foundation.IReference<INT16>** value);
                    [propget] HRESULT IsAnonymous([out] [retval] boolean* value);
                    [propget] HRESULT IsConnectable([out] [retval] boolean* value);
                    [propget] HRESULT IsScannable([out] [retval] boolean* value);
                    [propget] HRESULT IsDirected([out] [retval] boolean* value);
                    [propget] HRESULT IsScanResponse([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs)]
                [uuid(8D204B54-FF86-5D84-A25A-137DCCD96F7A)]
                interface IBluetoothLEAdvertisementReceivedEventArgs3 : IInspectable
                {
                    [propget] HRESULT PrimaryPhy([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType* value);
                    [propget] HRESULT SecondaryPhy([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters)]
                [uuid(94F91413-63D9-53BD-AF4C-E6B1A6514595)]
                interface IBluetoothLEAdvertisementScanParameters : IInspectable
                {
                    [propget] HRESULT ScanWindow([out] [retval] UINT16* value);
                    [propget] HRESULT ScanInterval([out] [retval] UINT16* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters)]
                [uuid(548E39CD-3C9E-5F8D-B5E1-ADEBED5C357C)]
                interface IBluetoothLEAdvertisementScanParametersStatics : IInspectable
                {
                    HRESULT CoexistenceOptimized([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters** parameters);
                    HRESULT LowLatency([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters** parameters);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher)]
                [uuid(A6AC336F-F3D3-4297-8D6C-C81EA6623F40)]
                interface IBluetoothLEAdvertisementWatcher : IInspectable
                {
                    [propget] HRESULT MinSamplingInterval([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT MaxSamplingInterval([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT MinOutOfRangeTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT MaxOutOfRangeTimeout([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStatus* value);
                    [propget] HRESULT ScanningMode([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode* value);
                    [propput] HRESULT ScanningMode([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode value);
                    [propget] HRESULT SignalStrengthFilter([out] [retval] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter** value);
                    [propput] HRESULT SignalStrengthFilter([in] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter* value);
                    [propget] HRESULT AdvertisementFilter([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter** value);
                    [propput] HRESULT AdvertisementFilter([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter* value);
                    HRESULT Start();
                    HRESULT Stop();
                    [eventadd] HRESULT Received([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Received([in] EventRegistrationToken token);
                    [eventadd] HRESULT Stopped([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Stopped([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher)]
                [uuid(01BF26BC-B164-5805-90A3-E8A7997FF225)]
                interface IBluetoothLEAdvertisementWatcher2 : IInspectable
                {
                    [propget] HRESULT AllowExtendedAdvertisements([out] [retval] boolean* value);
                    [propput] HRESULT AllowExtendedAdvertisements([in] boolean value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher)]
                [uuid(14D980BE-4002-5DBE-8519-FFCA6CA389F0)]
                interface IBluetoothLEAdvertisementWatcher3 : IInspectable
                {
                    [propget] HRESULT UseUncoded1MPhy([out] [retval] boolean* value);
                    [propput] HRESULT UseUncoded1MPhy([in] boolean value);
                    [propget] HRESULT UseCodedPhy([out] [retval] boolean* value);
                    [propput] HRESULT UseCodedPhy([in] boolean value);
                    [propget] HRESULT ScanParameters([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters** value);
                    [propput] HRESULT ScanParameters([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters* value);
                    [propget] HRESULT UseHardwareFilter([out] [retval] boolean* value);
                    [propput] HRESULT UseHardwareFilter([in] boolean value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher)]
                [uuid(9AAF2D56-39AC-453E-B32A-85C657E017F1)]
                interface IBluetoothLEAdvertisementWatcherFactory : IInspectable
                {
                    HRESULT Create([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter* advertisementFilter, [out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs)]
                [uuid(DD40F84D-E7B9-43E3-9C04-0685D085FD8C)]
                interface IBluetoothLEAdvertisementWatcherStoppedEventArgs : IInspectable
                {
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData)]
                [uuid(912DBA18-6963-4533-B061-4694DAFB34E5)]
                interface IBluetoothLEManufacturerData : IInspectable
                {
                    [propget] HRESULT CompanyId([out] [retval] UINT16* value);
                    [propput] HRESULT CompanyId([in] UINT16 value);
                    [propget] HRESULT Data([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData)]
                [uuid(C09B39F8-319A-441E-8DE5-66A81E877A6C)]
                interface IBluetoothLEManufacturerDataFactory : IInspectable
                {
                    HRESULT Create([in] UINT16 companyId, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData** value);
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisement
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisement;
                }

                [activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementBytePatternFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementBytePattern
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementBytePattern;
                }

                [activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementDataSectionFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementDataSection
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementDataSection;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementDataTypesStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementDataTypes
                {
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementFilter
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementFilter;
                }

                [activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisherFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementPublisher
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisher;
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisher2;
                    [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisher3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementPublisherStatusChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisherStatusChangedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementPublisherStatusChangedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementReceivedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs2;
                    [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementScanParametersStatics, Windows.Foundation.UniversalApiContract, 19.0)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementScanParameters
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementScanParameters;
                }

                [activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcherFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementWatcher
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher;
                    [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher2;
                    [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEAdvertisementWatcherStoppedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcherStoppedEventArgs;
                }

                [activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEManufacturerDataFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BluetoothLEManufacturerData
                {
                    [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEManufacturerData;
                }
            }
        }
    }
}
