Index: device/bluetooth/bluetooth_low_energy_defs_win.h |
diff --git a/device/bluetooth/bluetooth_low_energy_defs_win.h b/device/bluetooth/bluetooth_low_energy_defs_win.h |
index 921821a648529752a23c6e7294cd5afcf5c7d99b..77220c74cdaa92bfa012db75725ab1b1cc3c8f8d 100644 |
--- a/device/bluetooth/bluetooth_low_energy_defs_win.h |
+++ b/device/bluetooth/bluetooth_low_energy_defs_win.h |
@@ -9,183 +9,19 @@ |
#include <cfg.h> |
#include <devpkey.h> |
#include <setupapi.h> |
-// #include <bthledef.h> |
-// TODO(rpaquay): |
-// bthledef.h from Win8 SDK has a couple of issues when used in a Win32 app: |
-// * line 420: usage of "pragma pop" instead of "pragma warning(pop)" |
-// * line 349: no CALLBACK modifier in the definition of |
-// PFNBLUETOOTH_GATT_EVENT_CALLBACK. |
-// |
-// So, we duplicate the definitions we need and prevent the build from including |
-// the content of bthledef.h. |
-#ifndef __BTHLEDEF_H__ |
-#define __BTHLEDEF_H__ |
-// |
-// Bluetooth LE device interface GUID |
-// |
-// {781aee18-7733-4ce4-adb0-91f41c67b592} |
-DEFINE_GUID(GUID_BLUETOOTHLE_DEVICE_INTERFACE, |
- 0x781aee18, |
- 0x7733, |
- 0x4ce4, |
- 0xad, |
- 0xd0, |
- 0x91, |
- 0xf4, |
- 0x1c, |
- 0x67, |
- 0xb5, |
- 0x92); |
+#pragma warning(push) |
+// bthledef.h is buggy and contains |
+// #pragma pop |
+// which should be |
+// #pragma warning(pop) |
+// So, we disable the "unknown pragma" warning, then actually pop, and then pop |
+// our disabling of 4068. |
+#pragma warning(disable: 4068) |
+#include <bthledef.h> |
+#pragma warning(pop) |
+#pragma warning(pop) |
-DEFINE_GUID(BTH_LE_ATT_BLUETOOTH_BASE_GUID, |
- 0x00000000, |
- 0x0000, |
- 0x1000, |
- 0x80, |
- 0x00, |
- 0x00, |
- 0x80, |
- 0x5F, |
- 0x9B, |
- 0x34, |
- 0xFB); |
- |
-#define BLUETOOTH_GATT_FLAG_NONE 0x00000000 |
- |
-typedef struct _BTH_LE_UUID { |
- BOOLEAN IsShortUuid; |
-#ifdef MIDL_PASS |
- [ switch_type(BOOLEAN), switch_is((BOOLEAN)IsShortUuid) ] |
-#endif |
- union { |
-#ifdef MIDL_PASS |
- [case(TRUE)] |
-#endif |
- USHORT ShortUuid; |
-#ifdef MIDL_PASS |
- [case(FALSE)] |
-#endif |
- GUID LongUuid; |
- } Value; |
-} BTH_LE_UUID, *PBTH_LE_UUID; |
- |
-typedef struct _BTH_LE_GATT_SERVICE { |
- BTH_LE_UUID ServiceUuid; |
- USHORT AttributeHandle; |
-} BTH_LE_GATT_SERVICE, *PBTH_LE_GATT_SERVICE; |
- |
-typedef struct _BTH_LE_GATT_CHARACTERISTIC { |
- USHORT ServiceHandle; |
- BTH_LE_UUID CharacteristicUuid; |
- USHORT AttributeHandle; |
- USHORT CharacteristicValueHandle; |
- BOOLEAN IsBroadcastable; |
- BOOLEAN IsReadable; |
- BOOLEAN IsWritable; |
- BOOLEAN IsWritableWithoutResponse; |
- BOOLEAN IsSignedWritable; |
- BOOLEAN IsNotifiable; |
- BOOLEAN IsIndicatable; |
- BOOLEAN HasExtendedProperties; |
-} BTH_LE_GATT_CHARACTERISTIC, *PBTH_LE_GATT_CHARACTERISTIC; |
- |
-typedef struct _BTH_LE_GATT_CHARACTERISTIC_VALUE { |
- ULONG DataSize; |
- |
-#ifdef MIDL_PASS |
- [size_is(DataSize)] UCHAR Data[*]; |
-#else |
- _Field_size_bytes_(DataSize) UCHAR Data[1]; |
-#endif |
-} BTH_LE_GATT_CHARACTERISTIC_VALUE, *PBTH_LE_GATT_CHARACTERISTIC_VALUE; |
- |
-typedef enum _BTH_LE_GATT_DESCRIPTOR_TYPE { |
- CharacteristicExtendedProperties, |
- CharacteristicUserDescription, |
- ClientCharacteristicConfiguration, |
- ServerCharacteristicConfiguration, |
- CharacteristicFormat, |
- CharacteristicAggregateFormat, |
- CustomDescriptor |
-} BTH_LE_GATT_DESCRIPTOR_TYPE, |
- *PBTH_LE_GATT_DESCRIPTOR_TYPE; |
- |
-typedef struct _BTH_LE_GATT_DESCRIPTOR { |
- USHORT ServiceHandle; |
- USHORT CharacteristicHandle; |
- BTH_LE_GATT_DESCRIPTOR_TYPE DescriptorType; |
- BTH_LE_UUID DescriptorUuid; |
- USHORT AttributeHandle; |
-} BTH_LE_GATT_DESCRIPTOR, *PBTH_LE_GATT_DESCRIPTOR; |
- |
-typedef struct _BTH_LE_GATT_DESCRIPTOR_VALUE { |
- BTH_LE_GATT_DESCRIPTOR_TYPE DescriptorType; |
- BTH_LE_UUID DescriptorUuid; |
- |
-#ifdef MIDL_PASS |
- [ |
- switch_type(BTH_LE_GATT_DESCRIPTOR_TYPE), |
- switch_is((BTH_LE_GATT_DESCRIPTOR_TYPE)DescriptorType) |
- ] |
-#endif |
- union { |
- |
-#ifdef MIDL_PASS |
- [case(CharacteristicExtendedProperties)] |
-#endif |
- struct { |
- BOOLEAN IsReliableWriteEnabled; |
- BOOLEAN IsAuxiliariesWritable; |
- } CharacteristicExtendedProperties; |
- |
-#ifdef MIDL_PASS |
- [case(ClientCharacteristicConfiguration)] |
-#endif |
- struct { |
- BOOLEAN IsSubscribeToNotification; |
- BOOLEAN IsSubscribeToIndication; |
- } ClientCharacteristicConfiguration; |
- |
-#ifdef MIDL_PASS |
- [case(ServerCharacteristicConfiguration)] |
-#endif |
- struct { |
- BOOLEAN IsBroadcast; |
- } ServerCharacteristicConfiguration; |
- |
-#ifdef MIDL_PASS |
- [case(CharacteristicFormat)] |
-#endif |
- struct { |
- UCHAR Format; |
- UCHAR Exponent; |
- BTH_LE_UUID Unit; |
- UCHAR NameSpace; |
- BTH_LE_UUID Description; |
- } CharacteristicFormat; |
-#ifdef MIDL_PASS |
- [default]; |
-#endif |
- }; |
- |
- ULONG DataSize; |
- |
-#ifdef MIDL_PASS |
- [size_is(DataSize)] UCHAR Data[*]; |
-#else |
- _Field_size_bytes_(DataSize) UCHAR Data[1]; |
-#endif |
-} BTH_LE_GATT_DESCRIPTOR_VALUE, *PBTH_LE_GATT_DESCRIPTOR_VALUE; |
- |
-typedef enum _BTH_LE_GATT_EVENT_TYPE { |
- CharacteristicValueChangedEvent, |
-} BTH_LE_GATT_EVENT_TYPE; |
- |
-typedef ULONG64 BTH_LE_GATT_RELIABLE_WRITE_CONTEXT, |
- *PBTH_LE_GATT_RELIABLE_WRITE_CONTEXT; |
- |
-#endif // __BTHLEDEF_H__ |
#include <bluetoothapis.h> |
#include <bluetoothleapis.h> |