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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Devices.Bluetooth.idl";
import "Windows.Devices.Bluetooth.Advertisement.idl";
import "Windows.Devices.Bluetooth.GenericAttributeProfile.idl";
import "Windows.Devices.Bluetooth.Rfcomm.idl";
import "Windows.Networking.Sockets.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Edevices2Ebluetooth_h__)")
cpp_quote("#include <Windows.Devices.Bluetooth.h>")
cpp_quote("#endif // !defined(__windows2Edevices2Ebluetooth_h__)")
cpp_quote("#if !defined(__windows2Edevices2Ebluetooth2Eadvertisement_h__)")
cpp_quote("#include <Windows.Devices.Bluetooth.Advertisement.h>")
cpp_quote("#endif // !defined(__windows2Edevices2Ebluetooth2Eadvertisement_h__)")
cpp_quote("#if !defined(__windows2Edevices2Ebluetooth2Egenericattributeprofile_h__)")
cpp_quote("#include <Windows.Devices.Bluetooth.GenericAttributeProfile.h>")
cpp_quote("#endif // !defined(__windows2Edevices2Ebluetooth2Egenericattributeprofile_h__)")
cpp_quote("#if !defined(__windows2Edevices2Ebluetooth2Erfcomm_h__)")
cpp_quote("#include <Windows.Devices.Bluetooth.Rfcomm.h>")
cpp_quote("#endif // !defined(__windows2Edevices2Ebluetooth2Erfcomm_h__)")
cpp_quote("#if !defined(__windows2Enetworking2Esockets_h__)")
cpp_quote("#include <Windows.Networking.Sockets.h>")
cpp_quote("#endif // !defined(__windows2Enetworking2Esockets_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Advertisement
            {
                typedef enum BluetoothLEAdvertisementPublisherStatus BluetoothLEAdvertisementPublisherStatus;

                runtimeclass BluetoothLEAdvertisementReceivedEventArgs;
            }
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            runtimeclass BluetoothDevice;

            typedef enum BluetoothError BluetoothError;

            typedef enum BluetoothServiceCapabilities BluetoothServiceCapabilities;

            runtimeclass BluetoothSignalStrengthFilter;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace GenericAttributeProfile
            {
                runtimeclass GattCharacteristic;
            }
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Rfcomm
            {
                runtimeclass RfcommServiceId;
            }
        }
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Sockets
        {
            runtimeclass StreamSocket;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Background
            {
                interface IRfcommInboundConnectionInformation;

                interface IRfcommOutboundConnectionInformation;

                interface IRfcommConnectionTriggerDetails;

                interface IGattCharacteristicNotificationTriggerDetails;

                interface IBluetoothLEAdvertisementWatcherTriggerDetails;

                interface IBluetoothLEAdvertisementPublisherTriggerDetails;

                runtimeclass RfcommInboundConnectionInformation;

                runtimeclass RfcommOutboundConnectionInformation;

                runtimeclass RfcommConnectionTriggerDetails;

                runtimeclass GattCharacteristicNotificationTriggerDetails;

                runtimeclass BluetoothLEAdvertisementWatcherTriggerDetails;

                runtimeclass BluetoothLEAdvertisementPublisherTriggerDetails;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace Background
            {
                [exclusiveto(Windows.Devices.Bluetooth.Background.RfcommInboundConnectionInformation)]
                [uuid(6D3E75A8-5429-4059-92E3-1E8B65528707)]
                [version(0x0A000000)]
                interface IRfcommInboundConnectionInformation : IInspectable
                {
                    [propget] HRESULT SdpRecord([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT SdpRecord([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT LocalServiceId([out] [retval] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId** value);
                    [propput] HRESULT LocalServiceId([in] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId* value);
                    [propget] HRESULT ServiceCapabilities([out] [retval] Windows.Devices.Bluetooth.BluetoothServiceCapabilities* value);
                    [propput] HRESULT ServiceCapabilities([in] Windows.Devices.Bluetooth.BluetoothServiceCapabilities value);
                }

                [exclusiveto(Windows.Devices.Bluetooth.Background.RfcommOutboundConnectionInformation)]
                [uuid(B091227B-F434-4CB0-99B1-4AB8CEDAEDD7)]
                [version(0x0A000000)]
                interface IRfcommOutboundConnectionInformation : IInspectable
                {
                    [propget] HRESULT RemoteServiceId([out] [retval] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId** value);
                    [propput] HRESULT RemoteServiceId([in] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId* value);
                }

                [exclusiveto(Windows.Devices.Bluetooth.Background.RfcommConnectionTriggerDetails)]
                [uuid(F922734D-2E3C-4EFC-AB59-FC5CF96F97E3)]
                [version(0x0A000000)]
                interface IRfcommConnectionTriggerDetails : IInspectable
                {
                    [propget] HRESULT Socket([out] [retval] Windows.Networking.Sockets.StreamSocket** value);
                    [propget] HRESULT Incoming([out] [retval] boolean* value);
                    [propget] HRESULT RemoteDevice([out] [retval] Windows.Devices.Bluetooth.BluetoothDevice** value);
                }

                [exclusiveto(Windows.Devices.Bluetooth.Background.GattCharacteristicNotificationTriggerDetails)]
                [uuid(9BA03B18-0FEC-436A-93B1-F46C697532A2)]
                [version(0x0A000000)]
                interface IGattCharacteristicNotificationTriggerDetails : IInspectable
                {
                    [propget] HRESULT Characteristic([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic** value);
                    [propget] HRESULT Value([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [exclusiveto(Windows.Devices.Bluetooth.Background.BluetoothLEAdvertisementWatcherTriggerDetails)]
                [uuid(A7DB5AD7-2257-4E69-9784-FEE645C1DCE0)]
                [version(0x0A000000)]
                interface IBluetoothLEAdvertisementWatcherTriggerDetails : IInspectable
                {
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                    [propget] HRESULT Advertisements([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>** value);
                    [propget] HRESULT SignalStrengthFilter([out] [retval] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter** value);
                }

                [exclusiveto(Windows.Devices.Bluetooth.Background.BluetoothLEAdvertisementPublisherTriggerDetails)]
                [uuid(610ECA86-3480-41C9-A918-7DDADF207E00)]
                [version(0x0A000000)]
                interface IBluetoothLEAdvertisementPublisherTriggerDetails : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPublisherStatus* value);
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass RfcommInboundConnectionInformation
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IRfcommInboundConnectionInformation;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass RfcommOutboundConnectionInformation
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IRfcommOutboundConnectionInformation;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass RfcommConnectionTriggerDetails
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IRfcommConnectionTriggerDetails;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass GattCharacteristicNotificationTriggerDetails
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IGattCharacteristicNotificationTriggerDetails;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass BluetoothLEAdvertisementWatcherTriggerDetails
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IBluetoothLEAdvertisementWatcherTriggerDetails;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass BluetoothLEAdvertisementPublisherTriggerDetails
                {
                    [default] interface Windows.Devices.Bluetooth.Background.IBluetoothLEAdvertisementPublisherTriggerDetails;
                }
            }
        }
    }
}
