From: Vibhav Pant vibhavp@gmail.com
--- include/Makefile.in | 1 + ...indows.devices.bluetooth.advertisement.idl | 522 ++++++++++++++++++ include/windows.devices.bluetooth.idl | 42 ++ 3 files changed, 565 insertions(+) create mode 100644 include/windows.devices.bluetooth.advertisement.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 662b149da32..57dd4c3dc26 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -866,6 +866,7 @@ SOURCES = \ windows.applicationmodel.idl \ windows.data.json.idl \ windows.data.xml.dom.idl \ + windows.devices.bluetooth.advertisement.idl \ windows.devices.bluetooth.genericattributeprofile.idl \ windows.devices.bluetooth.idl \ windows.devices.bluetooth.rfcomm.idl \ diff --git a/include/windows.devices.bluetooth.advertisement.idl b/include/windows.devices.bluetooth.advertisement.idl new file mode 100644 index 00000000000..f976db1627f --- /dev/null +++ b/include/windows.devices.bluetooth.advertisement.idl @@ -0,0 +1,522 @@ +/* + * Copyright 2025 Vibhav Pant + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +#ifndef DO_NO_IMPORTS +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.storage.streams.idl"; +import "windows.devices.bluetooth.idl"; +#endif + +namespace Windows.Devices.Bluetooth { + typedef enum BluetoothAddressType BluetoothAddressType; + typedef enum BluetoothError BluetoothError; + + runtimeclass BluetoothSignalStrengthFilter; +} + +namespace Windows.Devices.Bluetooth.Advertisement { + typedef enum BluetoothLEAdvertisementFlags BluetoothLEAdvertisementFlags; + typedef enum BluetoothLEAdvertisementWatcherStatus BluetoothLEAdvertisementWatcherStatus; + typedef enum BluetoothLEScanningMode BluetoothLEScanningMode; + typedef enum BluetoothLEAdvertisementType BluetoothLEAdvertisementType; + typedef enum BluetoothLEAdvertisementPhyType BluetoothLEAdvertisementPhyType; + + interface IBluetoothLEManufacturerData; + interface IBluetoothLEAdvertisementDataSection; + interface IBluetoothLEAdvertisementDataSectionFactory; + interface IBluetoothLEManufacturerData; + interface IBluetoothLEManufacturerDataFactory; + interface IBluetoothLEAdvertisementWatcher; + interface IBluetoothLEAdvertisementWatcher2; + interface IBluetoothLEAdvertisementWatcher3; + interface IBluetoothLEAdvertisementFilter; + interface IBluetoothLEAdvertisementReceivedEventArgs; + interface IBluetoothLEAdvertisementReceivedEventArgs2; + interface IBluetoothLEAdvertisementReceivedEventArgs3; + interface IBluetoothLEAdvertisementWatcherStoppedEventArgs; + interface IBluetoothLEAdvertisementBytePattern; + interface IBluetoothLEAdvertisementBytePatternFactory; + interface IBluetoothLEAdvertisementScanParameters; + interface IBluetoothLEAdvertisementScanParametersStatics; + + + runtimeclass BluetoothLEAdvertisement; + runtimeclass BluetoothLEManufacturerData; + runtimeclass BluetoothLEAdvertisementDataSection; + runtimeclass BluetoothLEManufacturerData; + runtimeclass BluetoothLEAdvertisementWatcher; + runtimeclass BluetoothLEAdvertisementFilter; + runtimeclass BluetoothLEAdvertisementReceivedEventArgs; + runtimeclass BluetoothLEAdvertisementWatcherStoppedEventArgs; + runtimeclass BluetoothLEAdvertisementBytePattern; + runtimeclass BluetoothLEAdvertisementScanParameters; + + declare { + interface Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>; + interface Windows.Foundation.Collections.IVector<GUID>; + interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *>; + interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *>; + interface Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern *>; + interface Windows.Foundation.Collections.IVectorView<GUID>; + interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern *>; + interface Windows.Foundation.Collections.IIterable<GUID>; + interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *>; + interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *>; + interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern *>; + interface Windows.Foundation.Collections.IIterator<GUID>; + interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *>; + interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *>; + interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern *>; + interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher *, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher *, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + flags + ] + enum BluetoothLEAdvertisementFlags + { + None = 0x00, + LimitedDiscoverableMode = 0x01, + GeneralDiscoverableMode = 0x02, + ClassicNotSupported = 0x04, + DualModeControllerCapable = 0x08, + DualModeHostCapable = 0x10, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum BluetoothLEAdvertisementPublisherStatus + { + Created = 0, + Waiting = 1, + Started = 2, + Stopping = 3, + Stopped = 4, + Aborted = 5, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum BluetoothLEAdvertisementType + { + ConnectableUndirected = 0, + ConnectableDirected = 1, + ScannableUndirected = 2, + NonConnectableUndirected = 3, + ScanResponse = 4, + [contract(Windows.Foundation.UniversalApiContract, 10.0)] + Extended = 5, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum BluetoothLEAdvertisementWatcherStatus + { + Created = 0, + Started = 1, + Stopping = 2, + Stopped = 3, + Aborted = 4, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + ] + enum BluetoothLEScanningMode + { + Passive = 0, + Active = 1, + [contract(Windows.Foundation.UniversalApiContract, 10.0)] + None = 2, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 19.0), + ] + enum BluetoothLEAdvertisementPhyType + { + Unspecified = 0, + Uncoded1MPhy = 1, + Uncoded2MPhy = 2, + CodedPhy = 3, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement), + uuid(066fb2b7-33d1-4e7d-8367-cf81d0f79653) + ] + interface IBluetoothLEAdvertisement : IInspectable + { + [propget] HRESULT Flags([out, retval] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags> **value); + [propput] HRESULT Flags([in] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags> *value); + [propget] HRESULT LocalName([out, retval] HSTRING *value); + [propput] HRESULT LocalName([in] HSTRING value); + [propget] HRESULT ServiceUuids([out, retval] Windows.Foundation.Collections.IVector<GUID> **value); + [propget] HRESULT ManufacturerData([out, retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *> **value); + [propget] HRESULT DataSections([out, retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *> **value); + HRESULT GetManufacturerDataByCompanyId([in] UINT16 id, [out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData *> **value); + HRESULT GetSectionsByType([in] BYTE type, [out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection *> **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisement + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisement; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection), + uuid(d7213314-3a43-40f9-b6f0-92bfefc34ae3) + ] + interface IBluetoothLEAdvertisementDataSection : IInspectable + { + [propget] HRESULT DataType([out, retval] BYTE *value); + [propput] HRESULT DataType([in] BYTE value); + [propget] HRESULT Data([out, retval] Windows.Storage.Streams.IBuffer **value); + [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection), + uuid(e7a40942-a845-4045-bf7e-3e9971db8a6b) + ] + interface IBluetoothLEAdvertisementDataSectionFactory : IInspectable + { + HRESULT Create([in] BYTE type, [in] Windows.Storage.Streams.IBuffer *data, + [out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementDataSectionFactory, Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementDataSection + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementDataSection; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData), + uuid(912dba18-6963-4533-b061-4694dafb34e5) + ] + interface IBluetoothLEManufacturerData : IInspectable + { + [propget] HRESULT CompanyId([out, retval] UINT16 *value); + [propput] HRESULT CompanyId([in] UINT16 value); + [propget] HRESULT Data([out, retval] Windows.Storage.Streams.IBuffer **value); + [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData), + uuid(c09b39f8-319a-441e-8de5-66a81e877a6c) + ] + interface IBluetoothLEManufacturerDataFactory : IInspectable + { + HRESULT Create([in] UINT16 id, [in] Windows.Storage.Streams.IBuffer *data, + [out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEManufacturerDataFactory, Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEManufacturerData + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEManufacturerData; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher), + uuid(a6ac336f-f3d3-4297-8d6c-c81ea6623f40) + ] + interface IBluetoothLEAdvertisementWatcher : IInspectable + { + [propget] HRESULT MinSamplingInterval([out, retval] Windows.Foundation.TimeSpan *value); + [propget] HRESULT MaxSamplingInterval([out, retval] Windows.Foundation.TimeSpan *value); + [propget] HRESULT MinOutOfRangeTimeout([out, retval] Windows.Foundation.TimeSpan *value); + [propget] HRESULT MaxOutOfRangeTimeout([out, retval] Windows.Foundation.TimeSpan *value); + [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStatus *value); + [propget] HRESULT ScanningMode([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode *value); + [propput] HRESULT ScanningMode([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode value); + [propget] HRESULT SignalStrengthFilter([out, retval] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter **value); + [propput] HRESULT SignalStrengthFilter([in] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter *value); + [propget] HRESULT AdvertisementFilter([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter **value); + [propput] HRESULT AdvertisementFilter([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter *value); + HRESULT Start(); + HRESULT Stop(); + [eventadd] HRESULT Received([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher *, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs *> *handler, + [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Received([in] EventRegistrationToken token); + [eventadd] HRESULT Stopped([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher *, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs *> *handler, + [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Stopped([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher), + uuid(01bf26bc-b164-5805-90a3-e8a7997ff225) + ] + interface IBluetoothLEAdvertisementWatcher2 : IInspectable + { + [propget] HRESULT AllowExtendedAdvertisements([out, retval] boolean *value); + [propput] HRESULT AllowExtendedAdvertisements([in] boolean value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 19.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher), + uuid(14d980be-4002-5dbe-8519-ffca6ca389f0) + ] + interface IBluetoothLEAdvertisementWatcher3 : IInspectable + { + [propget] HRESULT UseUncoded1MPhy([out, retval] boolean *value); + [propput] HRESULT UseUncoded1MPhy([in] boolean value); + [propget] HRESULT UseCodedPhy([out, retval] boolean *value); + [propput] HRESULT UseCodedPhy([in] boolean value); + [propget] HRESULT ScanParameters([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters **value); + [propput] HRESULT ScanParameters([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters *value); + [propget] HRESULT UseHardwareFilter([out, retval] boolean *value); + [propput] HRESULT UseHardwareFilter([in] boolean value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher), + uuid(9aaf2d56-39ac-453e-b32a-85c657e017f1) + ] + interface IBluetoothLEAdvertisementWatcherFactory : IInspectable + { + HRESULT Create([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter *filter, + [out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcherFactory, Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementWatcher + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher2; + [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcher3; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter), + uuid(131eb0d3-d04e-47b1-837e-49405bf6f80f) + ] + interface IBluetoothLEAdvertisementFilter : IInspectable + { + [propget] HRESULT Advertisement([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement **value); + [propput] HRESULT Advertisement([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement *value); + [propget] HRESULT BytePatterns([out, retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern *> **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementFilter + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementFilter; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs), + uuid(27987ddf-e596-41be-8d43-9e6731d4a913) + ] + interface IBluetoothLEAdvertisementReceivedEventArgs : IInspectable + { + [propget] HRESULT RawSignalStrengthInDBm([out, retval] INT16 *value); + [propget] HRESULT BluetoothAddress([out, retval] UINT64 *value); + [propget] HRESULT AdvertisementType([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementType *value); + [propget] HRESULT Timestamp([out, retval] Windows.Foundation.DateTime *value); + [propget] HRESULT Advertisement([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs), + uuid(12d9c87b-0399-5f0e-a348-53b02b6b162e) + ] + interface IBluetoothLEAdvertisementReceivedEventArgs2 : IInspectable + { + [propget] HRESULT BluetoothAddressType([out, retval] Windows.Devices.Bluetooth.BluetoothAddressType *value); + [propget] HRESULT TransmitPowerLevelInDBm([out, retval] Windows.Foundation.IReference<INT16> **value); + [propget] HRESULT IsAnonymous([out, retval] boolean *value); + [propget] HRESULT IsConnectable([out, retval] boolean *value); + [propget] HRESULT IsScannable([out, retval] boolean *value); + [propget] HRESULT IsDirected([out, retval] boolean *value); + [propget] HRESULT IsScanResponse([out, retval] boolean *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs), + uuid(8d204b54-ff86-5d84-a25a-137dccd96f7a) + ] + interface IBluetoothLEAdvertisementReceivedEventArgs3 : IInspectable + { + [propget] HRESULT PrimaryPhy([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType *value); + [propget] HRESULT SecondaryPhy([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementPhyType *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementReceivedEventArgs + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs2; + [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementReceivedEventArgs3; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs), + uuid(dd40f84d-e7b9-43e3-9c04-0685d085fd8c) + ] + interface IBluetoothLEAdvertisementWatcherStoppedEventArgs : IInspectable + { + [propget] HRESULT Error([out, retval] Windows.Devices.Bluetooth.BluetoothError *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementWatcherStoppedEventArgs + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementWatcherStoppedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern), + uuid(fbfad7f2-b9c5-4a08-bc51-502f8ef68a79) + ] + interface IBluetoothLEAdvertisementBytePattern : IInspectable + { + [propget] HRESULT DataType([out, retval] BYTE *value); + [propput] HRESULT DataType([in] BYTE value); + [propget] HRESULT Offset([out, retval] INT16 *value); + [propput] HRESULT Offset([in] INT16 value); + [propget] HRESULT Data([out, retval] Windows.Storage.Streams.IBuffer **value); + [propput] HRESULT Data([in] Windows.Storage.Streams.IBuffer *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern), + uuid(c2e24d73-fd5c-4ec3-be2a-9ca6fa11b7bd) + ] + interface IBluetoothLEAdvertisementBytePatternFactory : IInspectable + { + HRESULT Create([in] BYTE type, [in] INT16 offset, [in] Windows.Storage.Streams.IBuffer *data, + [out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementBytePattern **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementBytePatternFactory, Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementBytePattern + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementBytePattern; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 19.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters), + uuid(94f91413-63d9-53bd-af4c-e6b1a6514595) + ] + interface IBluetoothLEAdvertisementScanParameters : IInspectable + { + [propget] HRESULT ScanWindow([out, retval] UINT16 *value); + [propget] HRESULT ScanInterval([out, retval] UINT16 *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 19.0), + exclusiveto(Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters), + uuid(548e39cd-3c9e-5f8d-b5e1-adebed5c357c) + ] + interface IBluetoothLEAdvertisementScanParametersStatics : IInspectable + { + HRESULT CoexistenceOptimized([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters **value); + HRESULT LowLatency([out, retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementScanParameters **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 19.0), + static(Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementScanParametersStatics, Windows.Foundation.UniversalApiContract, 19.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothLEAdvertisementScanParameters + { + [default] interface Windows.Devices.Bluetooth.Advertisement.IBluetoothLEAdvertisementScanParameters; + } +} diff --git a/include/windows.devices.bluetooth.idl b/include/windows.devices.bluetooth.idl index ef14b25ba8c..9e27db46ca2 100644 --- a/include/windows.devices.bluetooth.idl +++ b/include/windows.devices.bluetooth.idl @@ -41,6 +41,7 @@ namespace Windows.Devices.Bluetooth { typedef enum BluetoothMinorClass BluetoothMinorClass; typedef enum BluetoothServiceCapabilities BluetoothServiceCapabilities; typedef enum BluetoothError BluetoothError; + typedef enum BluetoothAddressType BluetoothAddressType;
interface IBluetoothAdapter; interface IBluetoothAdapter2; @@ -65,12 +66,14 @@ namespace Windows.Devices.Bluetooth { interface IBluetoothLEDevice6; interface IBluetoothLEDeviceStatics; interface IBluetoothLEDeviceStatics2; + interface IBluetoothSignalStrengthFilter;
runtimeclass BluetoothAdapter; runtimeclass BluetoothClassOfDevice; runtimeclass BluetoothDevice; runtimeclass BluetoothDeviceId; runtimeclass BluetoothLEDevice; + runtimeclass BluetoothSignalStrengthFilter;
namespace Rfcomm { runtimeclass RfcommDeviceService; @@ -245,6 +248,17 @@ namespace Windows.Devices.Bluetooth { TransportNotSupported = 9, };
+ [ + contract(Windows.Foundation.UniversalApiContract, 2.0) + ] + enum BluetoothAddressType + { + Public = 0, + Random = 1, + [contract(Windows.Foundation.UniversalApiContract, 4.0)] + Unspecified = 2, + }; + [ contract(Windows.Foundation.UniversalApiContract, 4.0), exclusiveto(Windows.Devices.Bluetooth.BluetoothAdapter), @@ -473,4 +487,32 @@ namespace Windows.Devices.Bluetooth { [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice6; interface Windows.Foundation.IClosable; } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter), + uuid(df7b7391-6bb5-4cfe-90b1-5d7324edcf7f) + ] + interface IBluetoothSignalStrengthFilter : IInspectable + { + [propget] HRESULT InRangeThresholdInDBm([out, retval] Windows.Foundation.IReference<INT16> **value); + [propput] HRESULT InRangeThresholdInDBm([in] Windows.Foundation.IReference<INT16> *value); + [propget] HRESULT OutOfRangeThresholdInDBm([out, retval] Windows.Foundation.IReference<INT16> **value); + [propput] HRESULT OutOfRangeThresholdInDBm([in] Windows.Foundation.IReference<INT16> *value); + [propget] HRESULT OutOfRangeTimeout([out, retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan> **value); + [propput] HRESULT OutOfRangeTimeout([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan> *value); + [propget] HRESULT SamplingInterval([out, retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan> **value); + [propput] HRESULT SamplingInterval([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan> *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BluetoothSignalStrengthFilter + { + [default] interface Windows.Devices.Bluetooth.IBluetoothSignalStrengthFilter; + } }