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

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

            runtimeclass BluetoothDeviceId;

            typedef enum BluetoothError BluetoothError;

            runtimeclass BluetoothLEDevice;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Enumeration
        {
            runtimeclass DeviceAccessInformation;

            typedef enum DeviceAccessStatus DeviceAccessStatus;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        runtimeclass Deferral;

        interface IClosable;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace GenericAttributeProfile
            {
                typedef enum GattCharacteristicProperties GattCharacteristicProperties;

                typedef enum GattClientCharacteristicConfigurationDescriptorValue GattClientCharacteristicConfigurationDescriptorValue;

                typedef enum GattCommunicationStatus GattCommunicationStatus;

                typedef enum GattOpenStatus GattOpenStatus;

                typedef enum GattProtectionLevel GattProtectionLevel;

                typedef enum GattRequestState GattRequestState;

                typedef enum GattServiceProviderAdvertisementStatus GattServiceProviderAdvertisementStatus;

                typedef enum GattSessionStatus GattSessionStatus;

                typedef enum GattSharingMode GattSharingMode;

                typedef enum GattWriteOption GattWriteOption;

                interface IGattCharacteristic;

                interface IGattCharacteristic2;

                interface IGattCharacteristic3;

                interface IGattCharacteristicStatics;

                interface IGattCharacteristicUuidsStatics;

                interface IGattCharacteristicUuidsStatics2;

                interface IGattCharacteristicsResult;

                interface IGattClientNotificationResult;

                interface IGattClientNotificationResult2;

                interface IGattDescriptor;

                interface IGattDescriptor2;

                interface IGattDescriptorStatics;

                interface IGattDescriptorUuidsStatics;

                interface IGattDescriptorsResult;

                interface IGattDeviceService;

                interface IGattDeviceService2;

                interface IGattDeviceService3;

                interface IGattDeviceServiceStatics;

                interface IGattDeviceServiceStatics2;

                interface IGattDeviceServicesResult;

                interface IGattLocalCharacteristic;

                interface IGattLocalCharacteristicParameters;

                interface IGattLocalCharacteristicResult;

                interface IGattLocalDescriptor;

                interface IGattLocalDescriptorParameters;

                interface IGattLocalDescriptorResult;

                interface IGattLocalService;

                interface IGattPresentationFormat;

                interface IGattPresentationFormatStatics;

                interface IGattPresentationFormatStatics2;

                interface IGattPresentationFormatTypesStatics;

                interface IGattProtocolErrorStatics;

                interface IGattReadClientCharacteristicConfigurationDescriptorResult;

                interface IGattReadClientCharacteristicConfigurationDescriptorResult2;

                interface IGattReadRequest;

                interface IGattReadRequestedEventArgs;

                interface IGattReadResult;

                interface IGattReadResult2;

                interface IGattReliableWriteTransaction;

                interface IGattReliableWriteTransaction2;

                interface IGattRequestStateChangedEventArgs;

                interface IGattServiceProvider;

                interface IGattServiceProvider2;

                interface IGattServiceProviderAdvertisementStatusChangedEventArgs;

                interface IGattServiceProviderAdvertisingParameters;

                interface IGattServiceProviderAdvertisingParameters2;

                interface IGattServiceProviderAdvertisingParameters3;

                interface IGattServiceProviderResult;

                interface IGattServiceProviderStatics;

                interface IGattServiceUuidsStatics;

                interface IGattServiceUuidsStatics2;

                interface IGattSession;

                interface IGattSessionStatics;

                interface IGattSessionStatusChangedEventArgs;

                interface IGattSubscribedClient;

                interface IGattValueChangedEventArgs;

                interface IGattWriteRequest;

                interface IGattWriteRequestedEventArgs;

                interface IGattWriteResult;

                runtimeclass GattCharacteristic;

                runtimeclass GattCharacteristicUuids;

                runtimeclass GattCharacteristicsResult;

                runtimeclass GattClientNotificationResult;

                runtimeclass GattDescriptor;

                runtimeclass GattDescriptorUuids;

                runtimeclass GattDescriptorsResult;

                runtimeclass GattDeviceService;

                runtimeclass GattDeviceServicesResult;

                runtimeclass GattLocalCharacteristic;

                runtimeclass GattLocalCharacteristicParameters;

                runtimeclass GattLocalCharacteristicResult;

                runtimeclass GattLocalDescriptor;

                runtimeclass GattLocalDescriptorParameters;

                runtimeclass GattLocalDescriptorResult;

                runtimeclass GattLocalService;

                runtimeclass GattPresentationFormat;

                runtimeclass GattPresentationFormatTypes;

                runtimeclass GattProtocolError;

                runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult;

                runtimeclass GattReadRequest;

                runtimeclass GattReadRequestedEventArgs;

                runtimeclass GattReadResult;

                runtimeclass GattReliableWriteTransaction;

                runtimeclass GattRequestStateChangedEventArgs;

                runtimeclass GattServiceProvider;

                runtimeclass GattServiceProviderAdvertisementStatusChangedEventArgs;

                runtimeclass GattServiceProviderAdvertisingParameters;

                runtimeclass GattServiceProviderResult;

                runtimeclass GattServiceUuids;

                runtimeclass GattSession;

                runtimeclass GattSessionStatusChangedEventArgs;

                runtimeclass GattSubscribedClient;

                runtimeclass GattValueChangedEventArgs;

                runtimeclass GattWriteRequest;

                runtimeclass GattWriteRequestedEventArgs;

                runtimeclass GattWriteResult;
            }
        }
    }
}

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

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs*>;

                    interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristicResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptorResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattOpenStatus>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequest*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequest*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, IInspectable*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequest*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestStateChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisementStatusChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*, IInspectable*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*, IInspectable*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequest*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestStateChangedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace Bluetooth
        {
            namespace GenericAttributeProfile
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [flags]
                enum GattCharacteristicProperties
                {
                    None                      = 0x0,
                    Broadcast                 = 0x1,
                    Read                      = 0x2,
                    WriteWithoutResponse      = 0x4,
                    Write                     = 0x8,
                    Notify                    = 0x10,
                    Indicate                  = 0x20,
                    AuthenticatedSignedWrites = 0x40,
                    ExtendedProperties        = 0x80,
                    ReliableWrites            = 0x100,
                    WritableAuxiliaries       = 0x200
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum GattClientCharacteristicConfigurationDescriptorValue
                {
                    None     = 0,
                    Notify   = 1,
                    Indicate = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum GattCommunicationStatus
                {
                    Success       = 0,
                    Unreachable   = 1,
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    ProtocolError = 2,
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    AccessDenied  = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum GattOpenStatus
                {
                    Unspecified      = 0,
                    Success          = 1,
                    AlreadyOpened    = 2,
                    NotFound         = 3,
                    SharingViolation = 4,
                    AccessDenied     = 5
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum GattProtectionLevel
                {
                    Plain                               = 0,
                    AuthenticationRequired              = 1,
                    EncryptionRequired                  = 2,
                    EncryptionAndAuthenticationRequired = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum GattRequestState
                {
                    Pending   = 0,
                    Completed = 1,
                    Canceled  = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum GattServiceProviderAdvertisementStatus
                {
                    Created                            = 0,
                    Stopped                            = 1,
                    Started                            = 2,
                    Aborted                            = 3,
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                    StartedWithoutAllAdvertisementData = 4
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum GattSessionStatus
                {
                    Closed = 0,
                    Active = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum GattSharingMode
                {
                    Unspecified        = 0,
                    Exclusive          = 1,
                    SharedReadOnly     = 2,
                    SharedReadAndWrite = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum GattWriteOption
                {
                    WriteWithResponse    = 0,
                    WriteWithoutResponse = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(59CB50C1-5934-4F68-A198-EB864FA44E6B)]
                interface IGattCharacteristic : IInspectable
                {
                    [deprecated("Use GetDescriptorsForUuidAsync instead of GetDescriptors.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetDescriptors([in] GUID descriptorUuid, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>** value);
                    [propget] HRESULT CharacteristicProperties([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicProperties* value);
                    [propget] HRESULT ProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propput] HRESULT ProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT UserDescription([out] [retval] HSTRING* value);
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    [propget] HRESULT AttributeHandle([out] [retval] UINT16* value);
                    [propget] HRESULT PresentationFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>** value);
                    [overload("ReadValueAsync")] HRESULT ReadValueAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult*>** value);
                    [overload("ReadValueAsync")] HRESULT ReadValueWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult*>** value);
                    [overload("WriteValueAsync")] HRESULT WriteValueAsync([in] Windows.Storage.Streams.IBuffer* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>** asyncOp);
                    [overload("WriteValueAsync")] HRESULT WriteValueWithOptionAsync([in] Windows.Storage.Streams.IBuffer* value, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteOption writeOption, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>** asyncOp);
                    HRESULT ReadClientCharacteristicConfigurationDescriptorAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult*>** asyncOp);
                    HRESULT WriteClientCharacteristicConfigurationDescriptorAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue clientCharacteristicConfigurationDescriptorValue, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>** asyncOp);
                    [eventadd] HRESULT ValueChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs*>* valueChangedHandler, [out] [retval] EventRegistrationToken* valueChangedEventCookie);
                    [eventremove] HRESULT ValueChanged([in] EventRegistrationToken valueChangedEventCookie);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(AE1AB578-EC06-4764-B780-9835A1D35D6E)]
                interface IGattCharacteristic2 : IInspectable
                    requires
                        Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic
                {
                    [propget] HRESULT Service([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService** value);
                    [deprecated("Use GetDescriptorsAsync instead of GetAllDescriptors.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetAllDescriptors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>** descriptors);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(3F3C663E-93D4-406B-B817-DB81F8ED53B3)]
                interface IGattCharacteristic3 : IInspectable
                {
                    [overload("GetDescriptorsAsync")] HRESULT GetDescriptorsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult*>** operation);
                    [overload("GetDescriptorsAsync")] HRESULT GetDescriptorsWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult*>** operation);
                    [overload("GetDescriptorsForUuidAsync")] HRESULT GetDescriptorsForUuidAsync([in] GUID descriptorUuid, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult*>** operation);
                    [overload("GetDescriptorsForUuidAsync")] HRESULT GetDescriptorsForUuidWithCacheModeAsync([in] GUID descriptorUuid, [in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult*>** operation);
                    [overload("WriteValueWithResultAsync")] HRESULT WriteValueWithResultAsync([in] Windows.Storage.Streams.IBuffer* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>** operation);
                    [overload("WriteValueWithResultAsync")] HRESULT WriteValueWithResultAndOptionAsync([in] Windows.Storage.Streams.IBuffer* value, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteOption writeOption, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>** operation);
                    HRESULT WriteClientCharacteristicConfigurationDescriptorWithResultAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue clientCharacteristicConfigurationDescriptorValue, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(59CB50C3-5934-4F68-A198-EB864FA44E6B)]
                interface IGattCharacteristicStatics : IInspectable
                {
                    [deprecated("Use BluetoothUuidHelper instead of ConvertShortIdToUuid.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* characteristicUuid);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicUuids)]
                [uuid(58FA4586-B1DE-470C-B7DE-0D11FF44F4B7)]
                interface IGattCharacteristicUuidsStatics : IInspectable
                {
                    [propget] HRESULT BatteryLevel([out] [retval] GUID* value);
                    [propget] HRESULT BloodPressureFeature([out] [retval] GUID* value);
                    [propget] HRESULT BloodPressureMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT BodySensorLocation([out] [retval] GUID* value);
                    [propget] HRESULT CscFeature([out] [retval] GUID* value);
                    [propget] HRESULT CscMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT GlucoseFeature([out] [retval] GUID* value);
                    [propget] HRESULT GlucoseMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT GlucoseMeasurementContext([out] [retval] GUID* value);
                    [propget] HRESULT HeartRateControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT HeartRateMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT IntermediateCuffPressure([out] [retval] GUID* value);
                    [propget] HRESULT IntermediateTemperature([out] [retval] GUID* value);
                    [propget] HRESULT MeasurementInterval([out] [retval] GUID* value);
                    [propget] HRESULT RecordAccessControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT RscFeature([out] [retval] GUID* value);
                    [propget] HRESULT RscMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT SCControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT SensorLocation([out] [retval] GUID* value);
                    [propget] HRESULT TemperatureMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT TemperatureType([out] [retval] GUID* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicUuids)]
                [uuid(1855B425-D46E-4A2C-9C3F-ED6DEA29E7BE)]
                interface IGattCharacteristicUuidsStatics2 : IInspectable
                {
                    [propget] HRESULT AlertCategoryId([out] [retval] GUID* value);
                    [propget] HRESULT AlertCategoryIdBitMask([out] [retval] GUID* value);
                    [propget] HRESULT AlertLevel([out] [retval] GUID* value);
                    [propget] HRESULT AlertNotificationControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT AlertStatus([out] [retval] GUID* value);
                    [propget] HRESULT GapAppearance([out] [retval] GUID* value);
                    [propget] HRESULT BootKeyboardInputReport([out] [retval] GUID* value);
                    [propget] HRESULT BootKeyboardOutputReport([out] [retval] GUID* value);
                    [propget] HRESULT BootMouseInputReport([out] [retval] GUID* value);
                    [propget] HRESULT CurrentTime([out] [retval] GUID* value);
                    [propget] HRESULT CyclingPowerControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT CyclingPowerFeature([out] [retval] GUID* value);
                    [propget] HRESULT CyclingPowerMeasurement([out] [retval] GUID* value);
                    [propget] HRESULT CyclingPowerVector([out] [retval] GUID* value);
                    [propget] HRESULT DateTime([out] [retval] GUID* value);
                    [propget] HRESULT DayDateTime([out] [retval] GUID* value);
                    [propget] HRESULT DayOfWeek([out] [retval] GUID* value);
                    [propget] HRESULT GapDeviceName([out] [retval] GUID* value);
                    [propget] HRESULT DstOffset([out] [retval] GUID* value);
                    [propget] HRESULT ExactTime256([out] [retval] GUID* value);
                    [propget] HRESULT FirmwareRevisionString([out] [retval] GUID* value);
                    [propget] HRESULT HardwareRevisionString([out] [retval] GUID* value);
                    [propget] HRESULT HidControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT HidInformation([out] [retval] GUID* value);
                    [propget] HRESULT Ieee1107320601RegulatoryCertificationDataList([out] [retval] GUID* value);
                    [propget] HRESULT LnControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT LnFeature([out] [retval] GUID* value);
                    [propget] HRESULT LocalTimeInformation([out] [retval] GUID* value);
                    [propget] HRESULT LocationAndSpeed([out] [retval] GUID* value);
                    [propget] HRESULT ManufacturerNameString([out] [retval] GUID* value);
                    [propget] HRESULT ModelNumberString([out] [retval] GUID* value);
                    [propget] HRESULT Navigation([out] [retval] GUID* value);
                    [propget] HRESULT NewAlert([out] [retval] GUID* value);
                    [propget] HRESULT GapPeripheralPreferredConnectionParameters([out] [retval] GUID* value);
                    [propget] HRESULT GapPeripheralPrivacyFlag([out] [retval] GUID* value);
                    [propget] HRESULT PnpId([out] [retval] GUID* value);
                    [propget] HRESULT PositionQuality([out] [retval] GUID* value);
                    [propget] HRESULT ProtocolMode([out] [retval] GUID* value);
                    [propget] HRESULT GapReconnectionAddress([out] [retval] GUID* value);
                    [propget] HRESULT ReferenceTimeInformation([out] [retval] GUID* value);
                    [propget] HRESULT Report([out] [retval] GUID* value);
                    [propget] HRESULT ReportMap([out] [retval] GUID* value);
                    [propget] HRESULT RingerControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT RingerSetting([out] [retval] GUID* value);
                    [propget] HRESULT ScanIntervalWindow([out] [retval] GUID* value);
                    [propget] HRESULT ScanRefresh([out] [retval] GUID* value);
                    [propget] HRESULT SerialNumberString([out] [retval] GUID* value);
                    [propget] HRESULT GattServiceChanged([out] [retval] GUID* value);
                    [propget] HRESULT SoftwareRevisionString([out] [retval] GUID* value);
                    [propget] HRESULT SupportedNewAlertCategory([out] [retval] GUID* value);
                    [propget] HRESULT SupportUnreadAlertCategory([out] [retval] GUID* value);
                    [propget] HRESULT SystemId([out] [retval] GUID* value);
                    [propget] HRESULT TimeAccuracy([out] [retval] GUID* value);
                    [propget] HRESULT TimeSource([out] [retval] GUID* value);
                    [propget] HRESULT TimeUpdateControlPoint([out] [retval] GUID* value);
                    [propget] HRESULT TimeUpdateState([out] [retval] GUID* value);
                    [propget] HRESULT TimeWithDst([out] [retval] GUID* value);
                    [propget] HRESULT TimeZone([out] [retval] GUID* value);
                    [propget] HRESULT TxPowerLevel([out] [retval] GUID* value);
                    [propget] HRESULT UnreadAlertStatus([out] [retval] GUID* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult)]
                [uuid(1194945C-B257-4F3E-9DB7-F68BC9A9AEF2)]
                interface IGattCharacteristicsResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                    [propget] HRESULT Characteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult)]
                [uuid(506D5599-0112-419A-8E3B-AE21AFABD2C2)]
                interface IGattClientNotificationResult : IInspectable
                {
                    [propget] HRESULT SubscribedClient([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient** value);
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult)]
                [uuid(8FAEC497-45E0-497E-9582-29A1FE281AD5)]
                interface IGattClientNotificationResult2 : IInspectable
                {
                    [propget] HRESULT BytesSent([out] [retval] UINT16* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor)]
                [uuid(92055F2B-8084-4344-B4C2-284DE19A8506)]
                interface IGattDescriptor : IInspectable
                {
                    [propget] HRESULT ProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propput] HRESULT ProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    [propget] HRESULT AttributeHandle([out] [retval] UINT16* value);
                    [overload("ReadValueAsync")] HRESULT ReadValueAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult*>** value);
                    [overload("ReadValueAsync")] HRESULT ReadValueWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult*>** value);
                    HRESULT WriteValueAsync([in] Windows.Storage.Streams.IBuffer* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>** action);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor)]
                [uuid(8F563D39-D630-406C-BA11-10CDD16B0E5E)]
                interface IGattDescriptor2 : IInspectable
                {
                    HRESULT WriteValueWithResultAsync([in] Windows.Storage.Streams.IBuffer* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor)]
                [uuid(92055F2D-8084-4344-B4C2-284DE19A8506)]
                interface IGattDescriptorStatics : IInspectable
                {
                    [deprecated("Use BluetoothUuidHelper instead of ConvertShortIdToUuid.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* descriptorUuid);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorUuids)]
                [uuid(A6F862CE-9CFC-42F1-9185-FF37B75181D3)]
                interface IGattDescriptorUuidsStatics : IInspectable
                {
                    [propget] HRESULT CharacteristicAggregateFormat([out] [retval] GUID* value);
                    [propget] HRESULT CharacteristicExtendedProperties([out] [retval] GUID* value);
                    [propget] HRESULT CharacteristicPresentationFormat([out] [retval] GUID* value);
                    [propget] HRESULT CharacteristicUserDescription([out] [retval] GUID* value);
                    [propget] HRESULT ClientCharacteristicConfiguration([out] [retval] GUID* value);
                    [propget] HRESULT ServerCharacteristicConfiguration([out] [retval] GUID* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult)]
                [uuid(9BC091F3-95E7-4489-8D25-FF81955A57B9)]
                interface IGattDescriptorsResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                    [propget] HRESULT Descriptors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(AC7B7C05-B33C-47CF-990F-6B8F5577DF71)]
                interface IGattDeviceService : IInspectable
                    requires
                        Windows.Foundation.IClosable
                {
                    [deprecated("Use GetCharacteristicsForUuidAsync instead of GetCharacteristics.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetCharacteristics([in] GUID characteristicUuid, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>** value);
                    [deprecated("Use GetIncludedServicesForUuidAsync instead of GetIncludedServices.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetIncludedServices([in] GUID serviceUuid, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** value);
                    [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    [propget] HRESULT AttributeHandle([out] [retval] UINT16* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(FC54520B-0B0D-4708-BAE0-9FFD9489BC59)]
                interface IGattDeviceService2 : IInspectable
                    requires
                        Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService,
                        Windows.Foundation.IClosable
                {
                    [deprecated("Use Session instead of Device property.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [propget] HRESULT Device([out] [retval] Windows.Devices.Bluetooth.BluetoothLEDevice** value);
                    [deprecated("ParentServices may be altered or unavailable in future releases.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [propget] HRESULT ParentServices([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** value);
                    [deprecated("Use GetCharacteristicsAsync instead of GetAllCharacteristics.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetAllCharacteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>** characteristics);
                    [deprecated("Use GetIncludedServicesAsync instead of GetAllIncludedServices.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetAllIncludedServices([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** includedServices);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(B293A950-0C53-437C-A9B3-5C3210C6E569)]
                interface IGattDeviceService3 : IInspectable
                {
                    [propget] HRESULT DeviceAccessInformation([out] [retval] Windows.Devices.Enumeration.DeviceAccessInformation** value);
                    [propget] HRESULT Session([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession** value);
                    [propget] HRESULT SharingMode([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode* value);
                    HRESULT RequestAccessAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceAccessStatus>** value);
                    HRESULT OpenAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode sharingMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattOpenStatus>** operation);
                    [overload("GetCharacteristicsAsync")] HRESULT GetCharacteristicsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult*>** operation);
                    [overload("GetCharacteristicsAsync")] HRESULT GetCharacteristicsWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult*>** operation);
                    [overload("GetCharacteristicsForUuidAsync")] HRESULT GetCharacteristicsForUuidAsync([in] GUID characteristicUuid, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult*>** operation);
                    [overload("GetCharacteristicsForUuidAsync")] HRESULT GetCharacteristicsForUuidWithCacheModeAsync([in] GUID characteristicUuid, [in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult*>** operation);
                    [overload("GetIncludedServicesAsync")] HRESULT GetIncludedServicesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult*>** operation);
                    [overload("GetIncludedServicesAsync")] HRESULT GetIncludedServicesWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult*>** operation);
                    [overload("GetIncludedServicesForUuidAsync")] HRESULT GetIncludedServicesForUuidAsync([in] GUID serviceUuid, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult*>** operation);
                    [overload("GetIncludedServicesForUuidAsync")] HRESULT GetIncludedServicesForUuidWithCacheModeAsync([in] GUID serviceUuid, [in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(196D0022-FAAD-45DC-AE5B-2AC3184E84DB)]
                interface IGattDeviceServiceStatics : IInspectable
                {
                    [overload("FromIdAsync")] HRESULT FromIdAsync([in] HSTRING deviceId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** asyncOp);
                    HRESULT GetDeviceSelectorFromUuid([in] GUID serviceUuid, [out] [retval] HSTRING* selector);
                    [deprecated("Use GetDeviceSelectorFromUuid instead of GetDeviceSelectorFromShortId.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT GetDeviceSelectorFromShortId([in] UINT16 serviceShortId, [out] [retval] HSTRING* selector);
                    [deprecated("Use BluetoothUuidHelper instead of ConvertShortIdToUuid.  For more information, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* serviceUuid);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(0604186E-24A6-4B0D-A2F2-30CC01545D25)]
                interface IGattDeviceServiceStatics2 : IInspectable
                {
                    [overload("FromIdAsync")] HRESULT FromIdWithSharingModeAsync([in] HSTRING deviceId, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode sharingMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** operation);
                    [overload("GetDeviceSelectorForBluetoothDeviceId")] HRESULT GetDeviceSelectorForBluetoothDeviceId([in] Windows.Devices.Bluetooth.BluetoothDeviceId* bluetoothDeviceId, [out] [retval] HSTRING* result);
                    [overload("GetDeviceSelectorForBluetoothDeviceId")] HRESULT GetDeviceSelectorForBluetoothDeviceIdWithCacheMode([in] Windows.Devices.Bluetooth.BluetoothDeviceId* bluetoothDeviceId, [in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] HSTRING* result);
                    [overload("GetDeviceSelectorForBluetoothDeviceIdAndUuid")] HRESULT GetDeviceSelectorForBluetoothDeviceIdAndUuid([in] Windows.Devices.Bluetooth.BluetoothDeviceId* bluetoothDeviceId, [in] GUID serviceUuid, [out] [retval] HSTRING* result);
                    [overload("GetDeviceSelectorForBluetoothDeviceIdAndUuid")] HRESULT GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode([in] Windows.Devices.Bluetooth.BluetoothDeviceId* bluetoothDeviceId, [in] GUID serviceUuid, [in] Windows.Devices.Bluetooth.BluetoothCacheMode cacheMode, [out] [retval] HSTRING* result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult)]
                [uuid(171DD3EE-016D-419D-838A-576CF475A3D8)]
                interface IGattDeviceServicesResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                    [propget] HRESULT Services([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic)]
                [uuid(AEDE376D-5412-4D74-92A8-8DEB8526829C)]
                interface IGattLocalCharacteristic : IInspectable
                {
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    [propget] HRESULT StaticValue([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propget] HRESULT CharacteristicProperties([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicProperties* value);
                    [propget] HRESULT ReadProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propget] HRESULT WriteProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    HRESULT CreateDescriptorAsync([in] GUID descriptorUuid, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptorParameters* parameters, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptorResult*>** operation);
                    [propget] HRESULT Descriptors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*>** value);
                    [propget] HRESULT UserDescription([out] [retval] HSTRING* value);
                    [propget] HRESULT PresentationFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>** value);
                    [propget] HRESULT SubscribedClients([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*>** value);
                    [eventadd] HRESULT SubscribedClientsChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SubscribedClientsChanged([in] EventRegistrationToken token);
                    [eventadd] HRESULT ReadRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ReadRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT WriteRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT WriteRequested([in] EventRegistrationToken token);
                    [overload("NotifyValueAsync")] HRESULT NotifyValueAsync([in] Windows.Storage.Streams.IBuffer* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>*>** operation);
                    [overload("NotifyValueAsync")] HRESULT NotifyValueForSubscribedClientAsync([in] Windows.Storage.Streams.IBuffer* value, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient* subscribedClient, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientNotificationResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristicParameters)]
                [uuid(FAF73DB4-4CFF-44C7-8445-040E6EAD0063)]
                interface IGattLocalCharacteristicParameters : IInspectable
                {
                    [propput] HRESULT StaticValue([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT StaticValue([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT CharacteristicProperties([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicProperties value);
                    [propget] HRESULT CharacteristicProperties([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicProperties* value);
                    [propput] HRESULT ReadProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT ReadProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propput] HRESULT WriteProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT WriteProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propput] HRESULT UserDescription([in] HSTRING value);
                    [propget] HRESULT UserDescription([out] [retval] HSTRING* value);
                    [propget] HRESULT PresentationFormats([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristicResult)]
                [uuid(7975DE9B-0170-4397-9666-92F863F12EE6)]
                interface IGattLocalCharacteristicResult : IInspectable
                {
                    [propget] HRESULT Characteristic([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic** value);
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor)]
                [uuid(F48EBE06-789D-4A4B-8652-BD017B5D2FC6)]
                interface IGattLocalDescriptor : IInspectable
                {
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    [propget] HRESULT StaticValue([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propget] HRESULT ReadProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propget] HRESULT WriteProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [eventadd] HRESULT ReadRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ReadRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT WriteRequested([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT WriteRequested([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptorParameters)]
                [uuid(5FDEDE6A-F3C1-4B66-8C4B-E3D2293B40E9)]
                interface IGattLocalDescriptorParameters : IInspectable
                {
                    [propput] HRESULT StaticValue([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT StaticValue([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT ReadProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT ReadProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                    [propput] HRESULT WriteProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
                    [propget] HRESULT WriteProtectionLevel([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptorResult)]
                [uuid(375791BE-321F-4366-BFC1-3BC6B82C79F8)]
                interface IGattLocalDescriptorResult : IInspectable
                {
                    [propget] HRESULT Descriptor([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalDescriptor** value);
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalService)]
                [uuid(F513E258-F7F7-4902-B803-57FCC7D6FE83)]
                interface IGattLocalService : IInspectable
                {
                    [propget] HRESULT Uuid([out] [retval] GUID* value);
                    HRESULT CreateCharacteristicAsync([in] GUID characteristicUuid, [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristicParameters* parameters, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristicResult*>** operation);
                    [propget] HRESULT Characteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalCharacteristic*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat)]
                [uuid(196D0021-FAAD-45DC-AE5B-2AC3184E84DB)]
                interface IGattPresentationFormat : IInspectable
                {
                    [propget] HRESULT FormatType([out] [retval] BYTE* value);
                    [propget] HRESULT Exponent([out] [retval] INT32* value);
                    [propget] HRESULT Unit([out] [retval] UINT16* value);
                    [propget] HRESULT Namespace([out] [retval] BYTE* value);
                    [propget] HRESULT Description([out] [retval] UINT16* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat)]
                [uuid(196D0020-FAAD-45DC-AE5B-2AC3184E84DB)]
                interface IGattPresentationFormatStatics : IInspectable
                {
                    [propget] HRESULT BluetoothSigAssignedNumbers([out] [retval] BYTE* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat)]
                [uuid(A9C21713-B82F-435E-B634-21FD85A43C07)]
                interface IGattPresentationFormatStatics2 : IInspectable
                    requires
                        Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics
                {
                    HRESULT FromParts([in] BYTE formatType, [in] INT32 exponent, [in] UINT16 unit, [in] BYTE namespaceId, [in] UINT16 description, [out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormatTypes)]
                [uuid(FAF1BA0A-30BA-409C-BEF7-CFFB6D03B8FB)]
                interface IGattPresentationFormatTypesStatics : IInspectable
                {
                    [propget] HRESULT Boolean([out] [retval] BYTE* value);
                    [propget] HRESULT Bit2([out] [retval] BYTE* value);
                    [propget] HRESULT Nibble([out] [retval] BYTE* value);
                    [propget] HRESULT UInt8([out] [retval] BYTE* value);
                    [propget] HRESULT UInt12([out] [retval] BYTE* value);
                    [propget] HRESULT UInt16([out] [retval] BYTE* value);
                    [propget] HRESULT UInt24([out] [retval] BYTE* value);
                    [propget] HRESULT UInt32([out] [retval] BYTE* value);
                    [propget] HRESULT UInt48([out] [retval] BYTE* value);
                    [propget] HRESULT UInt64([out] [retval] BYTE* value);
                    [propget] HRESULT UInt128([out] [retval] BYTE* value);
                    [propget] HRESULT SInt8([out] [retval] BYTE* value);
                    [propget] HRESULT SInt12([out] [retval] BYTE* value);
                    [propget] HRESULT SInt16([out] [retval] BYTE* value);
                    [propget] HRESULT SInt24([out] [retval] BYTE* value);
                    [propget] HRESULT SInt32([out] [retval] BYTE* value);
                    [propget] HRESULT SInt48([out] [retval] BYTE* value);
                    [propget] HRESULT SInt64([out] [retval] BYTE* value);
                    [propget] HRESULT SInt128([out] [retval] BYTE* value);
                    [propget] HRESULT Float32([out] [retval] BYTE* value);
                    [propget] HRESULT Float64([out] [retval] BYTE* value);
                    [propget] HRESULT SFloat([out] [retval] BYTE* value);
                    [propget] HRESULT Float([out] [retval] BYTE* value);
                    [propget] HRESULT DUInt16([out] [retval] BYTE* value);
                    [propget] HRESULT Utf8([out] [retval] BYTE* value);
                    [propget] HRESULT Utf16([out] [retval] BYTE* value);
                    [propget] HRESULT Struct([out] [retval] BYTE* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtocolError)]
                [uuid(CA46C5C5-0ECC-4809-BEA3-CF79BC991E37)]
                interface IGattProtocolErrorStatics : IInspectable
                {
                    [propget] HRESULT InvalidHandle([out] [retval] BYTE* value);
                    [propget] HRESULT ReadNotPermitted([out] [retval] BYTE* value);
                    [propget] HRESULT WriteNotPermitted([out] [retval] BYTE* value);
                    [propget] HRESULT InvalidPdu([out] [retval] BYTE* value);
                    [propget] HRESULT InsufficientAuthentication([out] [retval] BYTE* value);
                    [propget] HRESULT RequestNotSupported([out] [retval] BYTE* value);
                    [propget] HRESULT InvalidOffset([out] [retval] BYTE* value);
                    [propget] HRESULT InsufficientAuthorization([out] [retval] BYTE* value);
                    [propget] HRESULT PrepareQueueFull([out] [retval] BYTE* value);
                    [propget] HRESULT AttributeNotFound([out] [retval] BYTE* value);
                    [propget] HRESULT AttributeNotLong([out] [retval] BYTE* value);
                    [propget] HRESULT InsufficientEncryptionKeySize([out] [retval] BYTE* value);
                    [propget] HRESULT InvalidAttributeValueLength([out] [retval] BYTE* value);
                    [propget] HRESULT UnlikelyError([out] [retval] BYTE* value);
                    [propget] HRESULT InsufficientEncryption([out] [retval] BYTE* value);
                    [propget] HRESULT UnsupportedGroupType([out] [retval] BYTE* value);
                    [propget] HRESULT InsufficientResources([out] [retval] BYTE* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult)]
                [uuid(63A66F09-1AEA-4C4C-A50F-97BAE474B348)]
                interface IGattReadClientCharacteristicConfigurationDescriptorResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ClientCharacteristicConfigurationDescriptor([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult)]
                [uuid(1BF1A59D-BA4D-4622-8651-F4EE150D0A5D)]
                interface IGattReadClientCharacteristicConfigurationDescriptorResult2 : IInspectable
                {
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequest)]
                [uuid(F1DD6535-6ACD-42A6-A4BB-D789DAE0043E)]
                interface IGattReadRequest : IInspectable
                {
                    [propget] HRESULT Offset([out] [retval] UINT32* value);
                    [propget] HRESULT Length([out] [retval] UINT32* value);
                    [propget] HRESULT State([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestState* value);
                    [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequest*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestStateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT StateChanged([in] EventRegistrationToken token);
                    HRESULT RespondWithValue([in] Windows.Storage.Streams.IBuffer* value);
                    HRESULT RespondWithProtocolError([in] BYTE protocolError);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequestedEventArgs)]
                [uuid(93497243-F39C-484B-8AB6-996BA486CFA3)]
                interface IGattReadRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT Session([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
                    HRESULT GetRequestAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadRequest*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult)]
                [uuid(63A66F08-1AEA-4C4C-A50F-97BAE474B348)]
                interface IGattReadResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT Value([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult)]
                [uuid(A10F50A0-FB43-48AF-BAAA-638A5C6329FE)]
                interface IGattReadResult2 : IInspectable
                {
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReliableWriteTransaction)]
                [uuid(63A66F07-1AEA-4C4C-A50F-97BAE474B348)]
                interface IGattReliableWriteTransaction : IInspectable
                {
                    HRESULT WriteValue([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic* characteristic, [in] Windows.Storage.Streams.IBuffer* value);
                    HRESULT CommitAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>** asyncOp);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReliableWriteTransaction)]
                [uuid(51113987-EF12-462F-9FB2-A1A43A679416)]
                interface IGattReliableWriteTransaction2 : IInspectable
                {
                    HRESULT CommitWithResultAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestStateChangedEventArgs)]
                [uuid(E834D92C-27BE-44B3-9D0D-4FC6E808DD3F)]
                interface IGattRequestStateChangedEventArgs : IInspectable
                {
                    [propget] HRESULT State([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestState* value);
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider)]
                [uuid(7822B3CD-2889-4F86-A051-3F0AED1C2760)]
                interface IGattServiceProvider : IInspectable
                {
                    [propget] HRESULT Service([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattLocalService** value);
                    [propget] HRESULT AdvertisementStatus([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisementStatus* value);
                    [eventadd] HRESULT AdvertisementStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisementStatusChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT AdvertisementStatusChanged([in] EventRegistrationToken token);
                    [overload("StartAdvertising")] HRESULT StartAdvertising();
                    [overload("StartAdvertising")] HRESULT StartAdvertisingWithParameters([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisingParameters* parameters);
                    HRESULT StopAdvertising();
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider)]
                [uuid(9EF531A9-CF12-59A3-A81C-362F4AABAACF)]
                interface IGattServiceProvider2 : IInspectable
                {
                    HRESULT UpdateAdvertisingParameters([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisingParameters* parameters);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisementStatusChangedEventArgs)]
                [uuid(59A5AA65-FA21-4FFC-B155-04D928012686)]
                interface IGattServiceProviderAdvertisementStatusChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisementStatus* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisingParameters)]
                [uuid(E2CE31AB-6315-4C22-9BD7-781DBC3D8D82)]
                interface IGattServiceProviderAdvertisingParameters : IInspectable
                {
                    [propput] HRESULT IsConnectable([in] boolean value);
                    [propget] HRESULT IsConnectable([out] [retval] boolean* value);
                    [propput] HRESULT IsDiscoverable([in] boolean value);
                    [propget] HRESULT IsDiscoverable([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisingParameters)]
                [uuid(FF68468D-CA92-4434-9743-0E90988AD879)]
                interface IGattServiceProviderAdvertisingParameters2 : IInspectable
                {
                    [propput] HRESULT ServiceData([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT ServiceData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderAdvertisingParameters)]
                [uuid(A23546B2-B216-5929-9055-F1313DD53E2A)]
                interface IGattServiceProviderAdvertisingParameters3 : IInspectable
                {
                    [propget] HRESULT UseLowEnergyUncoded1MPhyAsSecondaryPhy([out] [retval] boolean* value);
                    [propput] HRESULT UseLowEnergyUncoded1MPhyAsSecondaryPhy([in] boolean value);
                    [propget] HRESULT UseLowEnergyUncoded2MPhyAsSecondaryPhy([out] [retval] boolean* value);
                    [propput] HRESULT UseLowEnergyUncoded2MPhyAsSecondaryPhy([in] boolean value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderResult)]
                [uuid(764696D8-C53E-428C-8A48-67AFE02C3AE6)]
                interface IGattServiceProviderResult : IInspectable
                {
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                    [propget] HRESULT ServiceProvider([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProvider)]
                [uuid(31794063-5256-4054-A4F4-7BBE7755A57E)]
                interface IGattServiceProviderStatics : IInspectable
                {
                    [overload("CreateAsync")] HRESULT CreateAsync([in] GUID serviceUuid, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceProviderResult*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceUuids)]
                [uuid(6DC57058-9ABA-4417-B8F2-DCE016D34EE2)]
                interface IGattServiceUuidsStatics : IInspectable
                {
                    [propget] HRESULT Battery([out] [retval] GUID* value);
                    [propget] HRESULT BloodPressure([out] [retval] GUID* value);
                    [propget] HRESULT CyclingSpeedAndCadence([out] [retval] GUID* value);
                    [propget] HRESULT GenericAccess([out] [retval] GUID* value);
                    [propget] HRESULT GenericAttribute([out] [retval] GUID* value);
                    [propget] HRESULT Glucose([out] [retval] GUID* value);
                    [propget] HRESULT HealthThermometer([out] [retval] GUID* value);
                    [propget] HRESULT HeartRate([out] [retval] GUID* value);
                    [propget] HRESULT RunningSpeedAndCadence([out] [retval] GUID* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceUuids)]
                [uuid(D2AE94F5-3D15-4F79-9C0C-EAAFA675155C)]
                interface IGattServiceUuidsStatics2 : IInspectable
                {
                    [propget] HRESULT AlertNotification([out] [retval] GUID* value);
                    [propget] HRESULT CurrentTime([out] [retval] GUID* value);
                    [propget] HRESULT CyclingPower([out] [retval] GUID* value);
                    [propget] HRESULT DeviceInformation([out] [retval] GUID* value);
                    [propget] HRESULT HumanInterfaceDevice([out] [retval] GUID* value);
                    [propget] HRESULT ImmediateAlert([out] [retval] GUID* value);
                    [propget] HRESULT LinkLoss([out] [retval] GUID* value);
                    [propget] HRESULT LocationAndNavigation([out] [retval] GUID* value);
                    [propget] HRESULT NextDstChange([out] [retval] GUID* value);
                    [propget] HRESULT PhoneAlertStatus([out] [retval] GUID* value);
                    [propget] HRESULT ReferenceTimeUpdate([out] [retval] GUID* value);
                    [propget] HRESULT ScanParameters([out] [retval] GUID* value);
                    [propget] HRESULT TxPower([out] [retval] GUID* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession)]
                [uuid(D23B5143-E04E-4C24-999C-9C256F9856B1)]
                interface IGattSession : IInspectable
                {
                    [propget] HRESULT DeviceId([out] [retval] Windows.Devices.Bluetooth.BluetoothDeviceId** value);
                    [propget] HRESULT CanMaintainConnection([out] [retval] boolean* value);
                    [propput] HRESULT MaintainConnection([in] boolean value);
                    [propget] HRESULT MaintainConnection([out] [retval] boolean* value);
                    [propget] HRESULT MaxPduSize([out] [retval] UINT16* value);
                    [propget] HRESULT SessionStatus([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatus* value);
                    [eventadd] HRESULT MaxPduSizeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT MaxPduSizeChanged([in] EventRegistrationToken token);
                    [eventadd] HRESULT SessionStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SessionStatusChanged([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession)]
                [uuid(2E65B95C-539F-4DB7-82A8-73BDBBF73EBF)]
                interface IGattSessionStatics : IInspectable
                {
                    HRESULT FromDeviceIdAsync([in] Windows.Devices.Bluetooth.BluetoothDeviceId* deviceId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs)]
                [uuid(7605B72E-837F-404C-AB34-3163F39DDF32)]
                interface IGattSessionStatusChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Error([out] [retval] Windows.Devices.Bluetooth.BluetoothError* value);
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatus* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient)]
                [uuid(736E9001-15A4-4EC2-9248-E3F20D463BE9)]
                interface IGattSubscribedClient : IInspectable
                {
                    [propget] HRESULT Session([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession** value);
                    [propget] HRESULT MaxNotificationSize([out] [retval] UINT16* value);
                    [eventadd] HRESULT MaxNotificationSizeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSubscribedClient*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT MaxNotificationSizeChanged([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs)]
                [uuid(D21BDB54-06E3-4ED8-A263-ACFAC8BA7313)]
                interface IGattValueChangedEventArgs : IInspectable
                {
                    [propget] HRESULT CharacteristicValue([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propget] HRESULT Timestamp([out] [retval] Windows.Foundation.DateTime* timestamp);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequest)]
                [uuid(AEB6A9ED-DE2F-4FC2-A9A8-94EA7844F13D)]
                interface IGattWriteRequest : IInspectable
                {
                    [propget] HRESULT Value([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propget] HRESULT Offset([out] [retval] UINT32* value);
                    [propget] HRESULT Option([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteOption* value);
                    [propget] HRESULT State([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestState* value);
                    [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequest*, Windows.Devices.Bluetooth.GenericAttributeProfile.GattRequestStateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT StateChanged([in] EventRegistrationToken token);
                    HRESULT Respond();
                    HRESULT RespondWithProtocolError([in] BYTE protocolError);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequestedEventArgs)]
                [uuid(2DEC8BBE-A73A-471A-94D5-037DEADD0806)]
                interface IGattWriteRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT Session([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
                    HRESULT GetRequestAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteRequest*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult)]
                [uuid(4991DDB1-CB2B-44F7-99FC-D29A2871DC9B)]
                interface IGattWriteResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
                    [propget] HRESULT ProtocolError([out] [retval] Windows.Foundation.IReference<BYTE>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattCharacteristic
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic2;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicUuidsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicUuidsStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattCharacteristicUuids
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattCharacteristicsResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicsResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattClientNotificationResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattClientNotificationResult;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattClientNotificationResult2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattDescriptor
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptor;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptor2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorUuidsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattDescriptorUuids
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattDescriptorsResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorsResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServiceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServiceStatics2, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass GattDeviceService
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService;
                    interface Windows.Foundation.IClosable;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService2;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattDeviceServicesResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServicesResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattLocalCharacteristic
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalCharacteristic;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 4.0)]
                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattLocalCharacteristicParameters
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalCharacteristicParameters;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattLocalCharacteristicResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalCharacteristicResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattLocalDescriptor
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalDescriptor;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 4.0)]
                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattLocalDescriptorParameters
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalDescriptorParameters;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattLocalDescriptorResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalDescriptorResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattLocalService
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattLocalService;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics2, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass GattPresentationFormat
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormat;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatTypesStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattPresentationFormatTypes
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattProtocolErrorStatics, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass GattProtocolError
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadClientCharacteristicConfigurationDescriptorResult;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadClientCharacteristicConfigurationDescriptorResult2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattReadRequest
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadRequest;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattReadRequestedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadRequestedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattReadResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadResult;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadResult2;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattReliableWriteTransaction
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReliableWriteTransaction;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReliableWriteTransaction2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattRequestStateChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattRequestStateChangedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderStatics, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass GattServiceProvider
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProvider;
                    [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProvider2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattServiceProviderAdvertisementStatusChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderAdvertisementStatusChangedEventArgs;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 4.0)]
                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattServiceProviderAdvertisingParameters
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderAdvertisingParameters;
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderAdvertisingParameters2;
                    [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderAdvertisingParameters3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattServiceProviderResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceProviderResult;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceUuidsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceUuidsStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass GattServiceUuids
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSessionStatics, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass GattSession
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSession;
                    interface Windows.Foundation.IClosable;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattSessionStatusChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSessionStatusChangedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattSubscribedClient
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSubscribedClient;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattValueChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattValueChangedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattWriteRequest
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattWriteRequest;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                runtimeclass GattWriteRequestedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattWriteRequestedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GattWriteResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattWriteResult;
                }
            }
        }
    }
}
