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

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

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

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

        interface IClosable;
    }
}
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 GattProtectionLevel GattProtectionLevel;

                typedef enum GattWriteOption GattWriteOption;

                typedef enum GattCommunicationStatus GattCommunicationStatus;

                interface IGattDeviceServiceStatics;

                interface IGattCharacteristicStatics;

                interface IGattCharacteristic;

                interface IGattCharacteristic2;

                interface IGattDescriptorStatics;

                interface IGattDescriptor;

                interface IGattPresentationFormatStatics;

                interface IGattPresentationFormatTypesStatics;

                interface IGattPresentationFormat;

                interface IGattValueChangedEventArgs;

                interface IGattServiceUuidsStatics;

                interface IGattServiceUuidsStatics2;

                interface IGattCharacteristicUuidsStatics;

                interface IGattCharacteristicUuidsStatics2;

                interface IGattDescriptorUuidsStatics;

                interface IGattReliableWriteTransaction;

                interface IGattReadResult;

                interface IGattReadClientCharacteristicConfigurationDescriptorResult;

                interface IGattDeviceService;

                interface IGattDeviceService2;

                runtimeclass GattDeviceService;

                runtimeclass GattCharacteristic;

                runtimeclass GattDescriptor;

                runtimeclass GattPresentationFormat;

                runtimeclass GattReadResult;

                runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult;

                runtimeclass GattValueChangedEventArgs;

                runtimeclass GattServiceUuids;

                runtimeclass GattCharacteristicUuids;

                runtimeclass GattDescriptorUuids;

                runtimeclass GattReliableWriteTransaction;

                runtimeclass GattPresentationFormatTypes;
            }
        }
    }
}

// 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.GattDescriptor*>;

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

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

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

                    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.GattPresentationFormat*>;

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

                    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.GattPresentationFormat*>;

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

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

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

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

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

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

                [version(0x06030000)]
                enum GattClientCharacteristicConfigurationDescriptorValue
                {
                    None     = 0,
                    Notify   = 1,
                    Indicate = 2
                };

                [version(0x06030000)]
                enum GattProtectionLevel
                {
                    Plain                               = 0,
                    AuthenticationRequired              = 1,
                    EncryptionRequired                  = 2,
                    EncryptionAndAuthenticationRequired = 3
                };

                [version(0x06030000)]
                enum GattWriteOption
                {
                    WriteWithResponse    = 0,
                    WriteWithoutResponse = 1
                };

                [version(0x06030000)]
                enum GattCommunicationStatus
                {
                    Success     = 0,
                    Unreachable = 1
                };

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(196D0022-FAAD-45DC-AE5B-2AC3184E84DB)]
                [version(0x06030000)]
                interface IGattDeviceServiceStatics : IInspectable
                {
                    HRESULT FromIdAsync([in] HSTRING deviceId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** gattDeviceService);
                    HRESULT GetDeviceSelectorFromUuid([in] GUID serviceUuid, [out] [retval] HSTRING* selector);
                    HRESULT GetDeviceSelectorFromShortId([in] UINT16 serviceShortId, [out] [retval] HSTRING* selector);
                    HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* serviceUuid);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(59CB50C3-5934-4F68-A198-EB864FA44E6B)]
                [version(0x06030000)]
                interface IGattCharacteristicStatics : IInspectable
                {
                    HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* characteristicUuid);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(59CB50C1-5934-4F68-A198-EB864FA44E6B)]
                [version(0x06030000)]
                interface IGattCharacteristic : IInspectable
                {
                    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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic)]
                [uuid(AE1AB578-EC06-4764-B780-9835A1D35D6E)]
                [version(0x0A000000)]
                interface IGattCharacteristic2 : IInspectable
                    requires
                        Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic
                {
                    [propget] HRESULT Service([out] [retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService** value);
                    HRESULT GetAllDescriptors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor*>** descriptors);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor)]
                [uuid(92055F2D-8084-4344-B4C2-284DE19A8506)]
                [version(0x06030000)]
                interface IGattDescriptorStatics : IInspectable
                {
                    HRESULT ConvertShortIdToUuid([in] UINT16 shortId, [out] [retval] GUID* descriptorUuid);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor)]
                [uuid(92055F2B-8084-4344-B4C2-284DE19A8506)]
                [version(0x06030000)]
                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);
                }

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

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormatTypes)]
                [uuid(FAF1BA0A-30BA-409C-BEF7-CFFB6D03B8FB)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat)]
                [uuid(196D0021-FAAD-45DC-AE5B-2AC3184E84DB)]
                [version(0x06030000)]
                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);
                }

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

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceUuids)]
                [uuid(6DC57058-9ABA-4417-B8F2-DCE016D34EE2)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattServiceUuids)]
                [uuid(D2AE94F5-3D15-4F79-9C0C-EAAFA675155C)]
                [version(0x0A000000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicUuids)]
                [uuid(58FA4586-B1DE-470C-B7DE-0D11FF44F4B7)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicUuids)]
                [uuid(1855B425-D46E-4A2C-9C3F-ED6DEA29E7BE)]
                [version(0x0A000000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorUuids)]
                [uuid(A6F862CE-9CFC-42F1-9185-FF37B75181D3)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReliableWriteTransaction)]
                [uuid(63A66F07-1AEA-4C4C-A50F-97BAE474B348)]
                [version(0x06030000)]
                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);
                }

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

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult)]
                [uuid(63A66F09-1AEA-4C4C-A50F-97BAE474B348)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(AC7B7C05-B33C-47CF-990F-6B8F5577DF71)]
                [version(0x06030000)]
                interface IGattDeviceService : IInspectable
                    requires
                        Windows.Foundation.IClosable
                {
                    HRESULT GetCharacteristics([in] GUID characteristicUuid, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>** value);
                    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);
                }

                [exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService)]
                [uuid(FC54520B-0B0D-4708-BAE0-9FFD9489BC59)]
                [version(0x0A000000)]
                interface IGattDeviceService2 : IInspectable
                    requires
                        Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService,
                        Windows.Foundation.IClosable
                {
                    [propget] HRESULT Device([out] [retval] Windows.Devices.Bluetooth.BluetoothLEDevice** value);
                    [propget] HRESULT ParentServices([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** value);
                    HRESULT GetAllCharacteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic*>** characteristics);
                    HRESULT GetAllIncludedServices([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService*>** includedServices);
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServiceStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattDeviceService
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService;
                    interface Windows.Foundation.IClosable;
                    [version(0x0A000000)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService2;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattCharacteristic
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic;
                    [version(0x0A000000)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic2;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattDescriptor
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptor;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattPresentationFormat
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormat;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass GattReadResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadResult;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadClientCharacteristicConfigurationDescriptorResult;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass GattValueChangedEventArgs
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattValueChangedEventArgs;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceUuidsStatics2, 0x0A000000)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattServiceUuidsStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattServiceUuids
                {
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicUuidsStatics, 0x06030000)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicUuidsStatics2, 0x0A000000)]
                [version(0x06030000)]
                runtimeclass GattCharacteristicUuids
                {
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorUuidsStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattDescriptorUuids
                {
                }

                [activatable(0x06030000)]
                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass GattReliableWriteTransaction
                {
                    [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReliableWriteTransaction;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatTypesStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass GattPresentationFormatTypes
                {
                }
            }
        }
    }
}
