Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_BTHDEF
      7 #define _INC_BTHDEF
      8 
      9 #include <_mingw_unicode.h>
     10 
     11 #ifdef __cplusplus
     12 extern "C" {
     13 #endif
     14 
     15 /* ULONGLONG according to google */
     16 __MINGW_EXTENSION typedef ULONGLONG BTH_ADDR;
     17 /* ULONG according to google */
     18 typedef ULONG BTH_COD;
     19 
     20 /*http://www.koders.com/delphi/fidD54082EB25FCAB99B74E5FDB4F3937EFB567FE9A.aspx*/
     21 /* The following parts are under LGPL */
     22 
     23 DEFINE_GUID(GUID_BTHPORT_DEVICE_INTERFACE,0x0850302A,0xB344,0x4fda,0x9B,0xE9,0x90,0x57,0x6B,0x8D,0x46,0xF0);
     24 DEFINE_GUID(GUID_BLUETOOTH_RADIO_IN_RANGE,0xEA3B5B82,0x26EE,0x450E,0xB0,0xD8,0xD2,0x6F,0xE3,0x0A,0x38,0x69);
     25 DEFINE_GUID(GUID_BLUETOOTH_RADIO_OUT_OF_RANGE,0xE28867C9,0xC2AA,0x4CED,0xB9,0x69,0x45,0x70,0x86,0x60,0x37,0xC4);
     26 DEFINE_GUID(GUID_BLUETOOTH_PIN_REQUEST,0xBD198B7C,0x24AB,0x4B9A,0x8C,0x0D,0xA8,0xEA,0x83,0x49,0xAA,0x16);
     27 DEFINE_GUID(GUID_BLUETOOTH_L2CAP_EVENT,0x7EAE4030,0xB709,0x4AA8,0xAC,0x55,0xE9,0x53,0x82,0x9C,0x9D,0xAA);
     28 DEFINE_GUID(GUID_BLUETOOTH_HCI_EVENT,0xFC240062,0x1541,0x49BE,0xB4,0x63,0x84,0xC4,0xDC,0xD7,0xBF,0x7F);
     29 DEFINE_GUID(BLUETOOTH_BASE_UUID,0x00000000,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     30 DEFINE_GUID(SDP_PROTOCOL_UUID,0x00000001,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     31 DEFINE_GUID(UDP_PROTOCOL_UUID,0x00000002,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     32 DEFINE_GUID(RFCOMM_PROTOCOL_UUID,0x00000003,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     33 DEFINE_GUID(TCP_PROTOCOL_UUID,0x00000004,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     34 DEFINE_GUID(TCSBIN_PROTOCOL_UUID,0x00000005,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     35 DEFINE_GUID(TCSAT_PROTOCOL_UUID,0x00000006,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     36 DEFINE_GUID(OBEX_PROTOCOL_UUID,0x00000008,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     37 DEFINE_GUID(IP_PROTOCOL_UUID,0x00000009,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     38 DEFINE_GUID(FTP_PROTOCOL_UUID,0x0000000A,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     39 DEFINE_GUID(HTTP_PROTOCOL_UUID,0x0000000C,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     40 DEFINE_GUID(WSP_PROTOCOL_UUID,0x0000000E,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     41 DEFINE_GUID(BNEP_PROTOCOL_UUID,0x0000000F,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     42 DEFINE_GUID(UPNP_PROTOCOL_UUID,0x00000010,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     43 DEFINE_GUID(HCCC_PROTOCOL_UUID,0x00000012,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     44 DEFINE_GUID(HCDC_PROTOCOL_UUID,0x00000014,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     45 DEFINE_GUID(HN_PROTOCOL_UUID,0x00000016,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     46 DEFINE_GUID(AVCTP_PROTOCOL_UUID,0x00000017,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     47 DEFINE_GUID(AVDTP_PROTOCOL_UUID,0x00000019,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     48 DEFINE_GUID(CMPT_PROTOCOL_UUID,0x0000001B,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     49 DEFINE_GUID(UDI_C_PLANE_PROTOCOL_UUID,0x0000001D,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     50 DEFINE_GUID(L2CAP_PROTOCOL_UUID,0x00000100,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     51 
     52 #define SDP_PROTOCOL_UUID16     0x0001
     53 #define UDP_PROTOCOL_UUID16     0x0002
     54 #define RFCOMM_PROTOCOL_UUID16  0x0003
     55 #define TCP_PROTOCOL_UUID16     0x0004
     56 #define TCSBIN_PROTOCOL_UUID16  0x0005
     57 #define TCSAT_PROTOCOL_UUID16   0x0006
     58 #define OBEX_PROTOCOL_UUID16    0x0008
     59 #define IP_PROTOCOL_UUID16      0x0009
     60 #define FTP_PROTOCOL_UUID16     0x000A
     61 #define HTTP_PROTOCOL_UUID16    0x000C
     62 #define WSP_PROTOCOL_UUID16     0x000E
     63 #define BNEP_PROTOCOL_UUID16    0x000F
     64 #define UPNP_PROTOCOL_UUID16    0x0010
     65 #define HID_PROTOCOL_UUID16     0x0011
     66 #define HCCC_PROTOCOL_UUID16    0x0012
     67 #define HCDC_PROTOCOL_UUID16    0x0014
     68 #define HCN_PROTOCOL_UUID16     0x0016
     69 #define AVCTP_PROTOCOL_UUID16   0x0017
     70 #define AVDTP_PROTOCOL_UUID16   0x0019
     71 #define CMPT_PROTOCOL_UUID16    0x001B
     72 #define UDI_C_PLANE_PROTOCOL_UUID16 0x001D
     73 #define L2CAP_PROTOCOL_UUID16   0x0100
     74 
     75 DEFINE_GUID(ServiceDiscoveryServerServiceClassID_UUID,0x00001000,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     76 DEFINE_GUID(BrowseGroupDescriptorServiceClassID_UUID,0x00001001,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     77 DEFINE_GUID(PublicBrowseGroupServiceClass_UUID,0x00001002,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     78 DEFINE_GUID(SerialPortServiceClass_UUID,0x00001101,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     79 DEFINE_GUID(LANAccessUsingPPPServiceClass_UUID,0x00001102,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     80 DEFINE_GUID(DialupNetworkingServiceClass_UUID,0x00001103,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     81 DEFINE_GUID(IrMCSyncServiceClass_UUID,0x00001104,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     82 DEFINE_GUID(OBEXObjectPushServiceClass_UUID,0x00001105,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     83 DEFINE_GUID(OBEXFileTransferServiceClass_UUID,0x00001106,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     84 DEFINE_GUID(IrMCSyncCommandServiceClass_UUID,0x00001107,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     85 DEFINE_GUID(HeadsetServiceClass_UUID,0x00001108,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     86 DEFINE_GUID(CordlessTelephonyServiceClass_UUID,0x00001109,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     87 DEFINE_GUID(AudioSourceServiceClass_UUID,0x0000110A,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     88 DEFINE_GUID(AudioSinkServiceClass_UUID,0x0000110B,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     89 DEFINE_GUID(AVRemoteControlTargetServiceClass_UUID,0x0000110C,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     90 DEFINE_GUID(AdvancedAudioDistributionServiceClass_UUID,0x0000110D,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     91 DEFINE_GUID(AVRemoteControlServiceClass_UUID,0x0000110E,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     92 DEFINE_GUID(VideoConferencingServiceClass_UUID,0x0000110F,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     93 DEFINE_GUID(IntercomServiceClass_UUID,0x00001110,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     94 DEFINE_GUID(FaxServiceClass_UUID,0x00001111,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     95 DEFINE_GUID(HeadsetAudioGatewayServiceClass_UUID,0x00001112,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     96 DEFINE_GUID(WAPServiceClass_UUID,0x00001113,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     97 DEFINE_GUID(WAPClientServiceClass_UUID,0x00001114,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     98 DEFINE_GUID(PANUServiceClass_UUID,0x00001115,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
     99 DEFINE_GUID(NAPServiceClass_UUID,0x00001116,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    100 DEFINE_GUID(GNServiceClass_UUID,0x00001117,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    101 DEFINE_GUID(DirectPrintingServiceClass_UUID,0x00001118,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    102 DEFINE_GUID(ReferencePrintingServiceClass_UUID,0x00001119,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    103 DEFINE_GUID(ImagingServiceClass_UUID,0x0000111A,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    104 DEFINE_GUID(ImagingResponderServiceClass_UUID,0x0000111B,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    105 DEFINE_GUID(ImagingAutomaticArchiveServiceClass_UUID,0x0000111C,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    106 DEFINE_GUID(ImagingReferenceObjectsServiceClass_UUID,0x0000111D,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    107 DEFINE_GUID(HandsfreeServiceClass_UUID,0x0000111E,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    108 DEFINE_GUID(HandsfreeAudioGatewayServiceClass_UUID,0x0000111F,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    109 DEFINE_GUID(DirectPrintingReferenceObjectsServiceClass_UUID,0x00001120,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    110 DEFINE_GUID(ReflectedUIServiceClass_UUID,0x00001121,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    111 DEFINE_GUID(BasicPringingServiceClass_UUID,0x00001122,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    112 DEFINE_GUID(PrintingStatusServiceClass_UUID,0x00001123,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    113 DEFINE_GUID(HumanInterfaceDeviceServiceClass_UUID,0x00001124,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    114 DEFINE_GUID(HardcopyCableReplacementServiceClass_UUID,0x00001125,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    115 DEFINE_GUID(HCRPrintServiceClass_UUID,0x00001126,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    116 DEFINE_GUID(HCRScanServiceClass_UUID,0x00001127,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    117 DEFINE_GUID(CommonISDNAccessServiceClass_UUID,0x00001128,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    118 DEFINE_GUID(VideoConferencingGWServiceClass_UUID,0x00001129,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    119 DEFINE_GUID(UDIMTServiceClass_UUID,0x0000112A,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    120 DEFINE_GUID(UDITAServiceClass_UUID,0x0000112B,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    121 DEFINE_GUID(AudioVideoServiceClass_UUID,0x0000112C,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    122 DEFINE_GUID(PnPInformationServiceClass_UUID,0x00001200,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    123 DEFINE_GUID(PnPInformationServiceClass_UUID,0x00001200,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    124 DEFINE_GUID(GenericNetworkingServiceClass_UUID,0x00001201,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    125 DEFINE_GUID(GenericFileTransferServiceClass_UUID,0x00001202,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    126 DEFINE_GUID(GenericAudioServiceClass_UUID,0x00001203,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    127 DEFINE_GUID(GenericTelephonyServiceClass_UUID,0x00001204,0x0000,0x1000,0x80,0x00,0x00,0x80,0x5F,0x9B,0x34,0xFB);
    128 
    129 #define ServiceDiscoveryServerServiceClassID_UUID16 0x1000
    130 #define BrowseGroupDescriptorServiceClassID_UUID16 0x1001
    131 #define PublicBrowseGroupServiceClassID_UUID16 0x1002
    132 #define SerialPortServiceClassID_UUID16 0x1101
    133 #define LANAccessUsingPPPServiceClassID_UUID16 0x1102
    134 #define DialupNetworkingServiceClassID_UUID16 0x1103
    135 #define IrMCSyncServiceClassID_UUID16 0x1104
    136 #define OBEXObjectPushServiceClassID_UUID16 0x1105
    137 #define OBEXFileTransferServiceClassID_UUID16 0x1106
    138 #define IrMcSyncCommandServiceClassID_UUID16 0x1107
    139 #define HeadsetServiceClassID_UUID16 0x1108
    140 #define CordlessServiceClassID_UUID16 0x1109
    141 #define AudioSourceServiceClassID_UUID16 0x110A
    142 #define AudioSinkSourceServiceClassID_UUID16 0x110B
    143 #define AVRemoteControlTargetServiceClassID_UUID16 0x110C
    144 #define AdvancedAudioDistributionServiceClassID_UUID16 0x110D
    145 #define AVRemoteControlServiceClassID_UUID16 0x110E
    146 #define VideoConferencingServiceClassID_UUID16 0x110F
    147 #define IntercomServiceClassID_UUID16 0x1110
    148 #define FaxServiceClassID_UUID16 0x1111
    149 #define HeadsetAudioGatewayServiceClassID_UUID16 0x1112
    150 #define WAPServiceClassID_UUID16 0x1113
    151 #define WAPClientServiceClassID_UUID16 0x1114
    152 #define PANUServiceClassID_UUID16 0x1115
    153 #define NAPServiceClassID_UUID16 0x1116
    154 #define GNServiceClassID_UUID16 0x1117
    155 #define DirectPrintingServiceClassID_UUID16 0x1118
    156 #define ReferencePrintingServiceClassID_UUID16 0x1119
    157 #define ImagingServiceClassID_UUID16 0x111A
    158 #define ImagingResponderServiceClassID_UUID16 0x111B
    159 #define ImagingAutomaticArchiveServiceClassID_UUID16 0x111C
    160 #define ImagingReferenceObjectsServiceClassID_UUID16 0x111D
    161 #define HandsfreeServiceClassID_UUID16 0x111E
    162 #define HandsfreeAudioGatewayServiceClassID_UUID16 0x111F
    163 #define DirectPrintingReferenceObjectsServiceClassID_UUID16 0x1120
    164 #define ReflectsUIServiceClassID_UUID16 0x1121
    165 #define BasicPrintingServiceClassID_UUID16 0x1122
    166 #define PrintingStatusServiceClassID_UUID16 0x1123
    167 #define HumanInterfaceDeviceServiceClassID_UUID16 0x1124
    168 #define HardcopyCableReplacementServiceClassID_UUID16 0x1125
    169 #define HCRPrintServiceClassID_UUID16 0x1126
    170 #define HCRScanServiceClassID_UUID16 0x1127
    171 #define CommonISDNAccessServiceClass_UUID16 0x1128
    172 #define VideoConferencingGWServiceClass_UUID16 0x1129
    173 #define UDIMTServiceClass_UUID16 0x112A
    174 #define UDITAServiceClass_UUID16 0x112B
    175 #define AudioVideoServiceClass_UUID16 0x112C
    176 
    177 #define PnPInformationServiceClassID_UUID16 0x1200
    178 #define GenericNetworkingServiceClassID_UUID16 0x1201
    179 #define GenericFileTransferServiceClassID_UUID16 0x1202
    180 #define GenericAudioServiceClassID_UUID16 0x1203
    181 #define GenericTelephonyServiceClassID_UUID16 0x1204
    182 
    183 #define BTH_MAX_NAME_SIZE 248
    184 #define BTH_MAX_PIN_SIZE 16
    185 #define BTH_LINK_KEY_LENGTH 16
    186 
    187 #define BTH_MFG_ERICSSON 0
    188 #define BTH_MFG_NOKIA 1
    189 #define BTH_MFG_INTEL 2
    190 #define BTH_MFG_IBM 3
    191 #define BTH_MFG_TOSHIBA 4
    192 #define BTH_MFG_3COM 5
    193 #define BTH_MFG_MICROSOFT 6
    194 #define BTH_MFG_LUCENT 7
    195 #define BTH_MFG_MOTOROLA 8
    196 #define BTH_MFG_INFINEON 9
    197 #define BTH_MFG_CSR 10
    198 #define BTH_MFG_SILICONWAVE 11
    199 #define BTH_MFG_DIGIANSWER 12
    200 #define BTH_MFG_TI 13
    201 #define BTH_MFG_PARTHUS 14
    202 #define BTH_MFG_BROADCOM 15
    203 #define BTH_MFG_MITEL 16
    204 #define BTH_MFG_WIDCOMM 17
    205 #define BTH_MFG_ZEEVO 18
    206 #define BTH_MFG_ATMEL 19
    207 #define BTH_MFG_MITSIBUSHI 20
    208 #define BTH_MFG_RTX_TELECOM 21
    209 #define BTH_MFG_KC_TECHNOLOGY 22
    210 #define BTH_MFG_NEWLOGIC 23
    211 #define BTH_MFG_TRANSILICA 24
    212 #define BTH_MFG_ROHDE_SCHWARZ 25
    213 #define BTH_MFG_TTPCOM 26
    214 #define BTH_MFG_SIGNIA 27
    215 #define BTH_MFG_CONEXANT 28
    216 #define BTH_MFG_QUALCOMM 29
    217 #define BTH_MFG_INVENTEL 30
    218 #define BTH_MFG_AVM_BERLIN 31
    219 #define BTH_MFG_BANDSPEED 32
    220 #define BTH_MFG_MANSELLA 33
    221 #define BTH_MFG_NEC 34
    222 #define BTH_MFG_WAVEPLUS_TECHNOLOGY_CO 35
    223 #define BTH_MFG_ALCATEL 36
    224 #define BTH_MFG_PHILIPS_SEMICONDUCTOR 37
    225 #define BTH_MFG_C_TECHNOLOGIES 38
    226 #define BTH_MFG_OPEN_INTERFACE 39
    227 #define BTH_MFG_RF_MICRO_DEVICES 40
    228 #define BTH_MFG_HITACHI 41
    229 #define BTH_MFG_SYMBOL_TECHNOLOGIES 42
    230 #define BTH_MFG_TENOVIS 43
    231 #define BTH_MFG_MACRONIX_INTERNATIONAL 44
    232 #define BTH_MFG_INTERNAL_USE 65535
    233 
    234 #define BTH_ADDR_NULL 0ULL
    235 
    236 #define NAP_MASK 0xFFFF00000000ULL
    237 #define SAP_MASK 0x0000FFFFFFFFULL
    238 #define NAP_BIT_OFFSET 32
    239 #define SAP_BIT_OFFSET 0
    240 
    241 #define GET_NAP(X) (((X)&NAP_MASK)>>NAP_BIT_OFFSET)
    242 #define GET_SAP(X) (((X)&SAP_MASK)>>SAP_BIT_OFFSET)
    243 #define SET_NAP(X) ((X)<<NAP_BIT_OFFSET)
    244 #define SET_SAP(X) ((X)<<SAP_BIT_OFFSET)
    245 #define SET_NAP_SAP(X,Y) (SET_NAP(X)|SET_SAP(Y))
    246 
    247 #define COD_FORMAT_BIT_OFFSET 0
    248 #define COD_MINOR_BIT_OFFSET  2
    249 #define COD_MAJOR_BIT_OFFSET  8
    250 #define COD_SERVICE_BIT_OFFSET 13
    251 
    252 #define COD_FORMAT_MASK 0x000003
    253 #define COD_MINOR_MASK  0x0000FC
    254 #define COD_MAJOR_MASK  0x001F00
    255 #define COD_SERVICE_MASK 0xFFE0000
    256 
    257 #define GET_COD_FORMAT(X) (((X) & COD_FORMAT_MASK) >> COD_FORMAT_BIT_OFFSET)
    258 #define GET_COD_MINOR(X) (((X) & COD_MINOR_MASK) >> COD_MINOR_BIT_OFFSET)
    259 #define GET_COD_MAJOR(X) (((X) & COD_MAJOR_MASK) >> COD_MAJOR_BIT_OFFSET)
    260 #define GET_COD_SERVICE(X) (((X) & COD_SERVICE_MASK) >> COD_SERVICE_BIT_OFFSET)
    261 
    262 #define SET_COD_MINOR(X,Y) (((X) & ~(COD_MINOR_MASK)) | ((Y) << COD_MINOR_BIT_OFFSET))
    263 #define SET_COD_MAJOR(X,Y) (((X) & ~(COD_MAJOR_MASK)) | ((Y) << COD_MAJOR_BIT_OFFSET))
    264 #define SET_COD_SERVICE(X,Y) (((X) & ~(COD_SERVICE_MASK)) | ((Y) << COD_SERVICE_BIT_OFFSET))
    265 
    266 #define COD_VERSION 0
    267 
    268 #define COD_SERVICE_LIMITED 0x0001
    269 #define COD_SERVICE_POSITIONING 0x0008
    270 #define COD_SERVICE_NETWORKING 0x0010
    271 #define COD_SERVICE_RENDERING 0x0020
    272 #define COD_SERVICE_CAPTURING 0x0040
    273 #define COD_SERVICE_OBJECT_XFER 0x0080
    274 #define COD_SERVICE_AUDIO 0x0100
    275 #define COD_SERVICE_TELEPHONY 0x0200
    276 #define COD_SERVICE_INFORMATION 0x0400
    277 
    278 #define COD_SERVICE_VALID_MASK (COD_SERVICE_LIMITED|COD_SERVICE_POSITIONING|COD_SERVICE_NETWORKING|COD_SERVICE_RENDERING|COD_SERVICE_CAPTURING|COD_SERVICE_OBJECT_XFER|COD_SERVICE_AUDIO|COD_SERVICE_TELEPHONY|COD_SERVICE_INFORMATION)
    279 
    280 #define COD_SERVICE_MAX_COUNT 9
    281 
    282 #define COD_MAJOR_MISCELLANEOUS 0x00
    283 #define COD_MAJOR_COMPUTER 0x01
    284 #define COD_MAJOR_PHONE 0x02
    285 #define COD_MAJOR_LAN_ACCESS 0x03
    286 #define COD_MAJOR_AUDIO 0x04
    287 #define COD_MAJOR_PERIPHERAL 0x05
    288 #define COD_MAJOR_IMAGING 0x06
    289 #define COD_MAJOR_UNCLASSIFIED 0x1F
    290 
    291 #define COD_COMPUTER_MINOR_UNCLASSIFIED 0x00
    292 #define COD_COMPUTER_MINOR_DESKTOP 0x01
    293 #define COD_COMPUTER_MINOR_SERVER 0x02
    294 #define COD_COMPUTER_MINOR_LAPTOP 0x03
    295 #define COD_COMPUTER_MINOR_HANDHELD 0x04
    296 #define COD_COMPUTER_MINOR_PALM 0x05
    297 #define COD_COMPUTER_MINOR_WEARABLE 0x06
    298 
    299 #define COD_PHONE_MINOR_UNCLASSIFIED 0x00
    300 #define COD_PHONE_MINOR_CELLULAR 0x01
    301 #define COD_PHONE_MINOR_CORDLESS 0x02
    302 #define COD_PHONE_MINOR_SMART 0x03
    303 #define COD_PHONE_MINOR_WIRED_MODEM 0x04
    304 
    305 #define COD_AUDIO_MINOR_UNCLASSIFIED 0x00
    306 #define COD_AUDIO_MINOR_HEADSET 0x01
    307 #define COD_AUDIO_MINOR_HANDS_FREE 0x02
    308 #define COD_AUDIO_MINOR_HEADSET_HANDS_FREE 0x03
    309 #define COD_AUDIO_MINOR_MICROPHONE 0x04
    310 #define COD_AUDIO_MINOR_LOUDSPEAKER 0x05
    311 #define COD_AUDIO_MINOR_HEADPHONES 0x06
    312 #define COD_AUDIO_MINOR_PORTABLE_AUDIO 0x07
    313 #define COD_AUDIO_MINOR_CAR_AUDIO 0x08
    314 #define COD_AUDIO_MINOR_SET_TOP_BOX 0x09
    315 #define COD_AUDIO_MINOR_HIFI_AUDIO 0x0A
    316 #define COD_AUDIO_MINOR_VCR 0x0B
    317 #define COD_AUDIO_MINOR_VIDEO_CAMERA 0x0C
    318 #define COD_AUDIO_MINOR_CAMCORDER 0x0D
    319 #define COD_AUDIO_MINOR_VIDEO_MONITOR 0x0E
    320 #define COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER 0x0F
    321 #define COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING 0x10
    322 /* #define COD_AUDIO_MINOR_RESERVED 0x11 */
    323 #define COD_AUDIO_MINOR_GAMING_TOY 0x12
    324 
    325 #define COD_PERIPHERAL_MINOR_KEYBOARD_MASK 0x10
    326 #define COD_PERIPHERAL_MINOR_POINTER_MASK 0x20
    327 
    328 #define COD_PERIPHERAL_MINOR_NO_CATEGORY 0x00
    329 #define COD_PERIPHERAL_MINOR_JOYSTICK 0x01
    330 #define COD_PERIPHERAL_MINOR_GAMEPAD 0x02
    331 #define COD_PERIPHERAL_MINOR_REMOTE_CONTROL 0x03
    332 #define COD_PERIPHERAL_MINOR_SENSING 0x04
    333 
    334 #define COD_IMAGING_MINOR_DISPLAY_MASK 0x04
    335 #define COD_IMAGING_MINOR_CAMERA_MASK 0x08
    336 #define COD_IMAGING_MINOR_SCANNER_MASK 0x10
    337 #define COD_IMAGING_MINOR_PRINTER_MASK 0x20
    338 
    339 #define COD_LAN_ACCESS_BIT_OFFSET 5
    340 #define COD_LAN_MINOR_MASK 0x0000001C
    341 #define COD_LAN_ACCESS_MASK 0x000000E0
    342 
    343 #define GET_COD_LAN_MINOR(X) (((X) & COD_LAN_MINOR_MASK) >> COD_MINOR_BIT_OFFSET)
    344 #define GET_COD_LAN_ACCESS(X) (((X) & COD_LAN_ACCESS_MASK) >> COD_LAN_ACCESS_BIT_OFFSET)
    345 
    346 #define COD_LAN_MINOR_UNCLASSIFIED 0x00
    347 
    348 #define COD_LAN_ACCESS_0_USED 0x00
    349 #define COD_LAN_ACCESS_17_USED 0x01
    350 #define COD_LAN_ACCESS_33_USED 0x02
    351 #define COD_LAN_ACCESS_50_USED 0x03
    352 #define COD_LAN_ACCESS_67_USED 0x04
    353 #define COD_LAN_ACCESS_83_USED 0x05
    354 #define COD_LAN_ACCESS_99_USED 0x06
    355 #define COD_LAN_ACCESS_FULL 0x07
    356 
    357 #define LAP_GIAC_VALUE 0x009E8B00
    358 
    359 #define LAP_LIAC_VALUE 0x009E8B00
    360 #define BTH_ADDR_IAC_FIRST 0x9E8B00
    361 #define BTH_ADDR_IAC_LAST 0x9E8B3
    362 #define BTH_ADDR_LIAC 0x9E8B00
    363 #define BTH_ADDR_GIAC 0x9E8B33
    364 
    365 typedef UCHAR BTHSTATUS, *PBTHSTATUS;
    366 
    367 #define BTH_ERROR(X) ((X) != BTH_ERROR_SUCCESS)
    368 #define BTH_SUCCESS(X) ((X) === BTH_ERROR_SUCCESS)
    369 
    370 #define BTH_ERROR_SUCCESS 0x00
    371 #define BTH_ERROR_UNKNOWN_HCI_COMMAND 0x01
    372 #define BTH_ERROR_NO_CONNECTION 0x02
    373 #define BTH_ERROR_HARDWARE_FAILURE 0x03
    374 #define BTH_ERROR_PAGE_TIMEOUT 0x04
    375 #define BTH_ERROR_AUTHENTICATION_FAILURE 0x05
    376 #define BTH_ERROR_KEY_MISSING 0x06
    377 #define BTH_ERROR_MEMORY_FULL 0x07
    378 #define BTH_ERROR_CONNECTION_TIMEOUT 0x08
    379 #define BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS 0x09
    380 #define BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS 0x0A
    381 #define BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS 0x0B
    382 #define BTH_ERROR_COMMAND_DISALLOWED 0x0C
    383 #define TH_ERROR_COMMAND_DISALLOWED 0x0D
    384 #define BTH_ERROR_HOST_REJECTED_SECURITY_REASONS 0x0E
    385 #define BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE 0x0F
    386 #define BTH_ERROR_HOST_TIMEOUT 0x10
    387 #define BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER 0x11
    388 #define BTH_ERROR_INVALID_HCI_PARAMETER 0x12
    389 #define BTH_ERROR_REMOTE_USER_ENDED_CONNECTION 0x13
    390 #define BTH_ERROR_REMOTE_LOW_RESOURCES 0x14
    391 #define BTH_ERROR_REMOTE_POWERING_OFF 0x15
    392 #define BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION 0x16
    393 #define BTH_ERROR_REPEATED_ATTEMPTS 0x17
    394 #define BTH_ERROR_PAIRING_NOT_ALLOWED 0x18
    395 #define BTH_ERROR_UKNOWN_LMP_PDU 0x19
    396 #define BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE 0x1A
    397 #define BTH_ERROR_SCO_OFFSET_REJECTED 0x1B
    398 #define BTH_ERROR_SCO_INTERVAL_REJECTED 0x1C
    399 #define BTH_ERROR_SCO_AIRMODE_REJECTED 0x1D
    400 #define BTH_ERROR_INVALID_LMP_PARAMETERS 0x1E
    401 #define BTH_ERROR_UNSPECIFIED_ERROR 0x1F
    402 #define BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE 0x20
    403 #define BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED 0x21
    404 #define BTH_ERROR_LMP_RESPONSE_TIMEOUT 0x22
    405 #define BTH_ERROR_LMP_TRANSACTION_COLLISION 0x23
    406 #define BTH_ERROR_LMP_PDU_NOT_ALLOWED 0x24
    407 #define BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE 0x25
    408 #define BTH_ERROR_UNIT_KEY_NOT_USED 0x26
    409 #define BTH_ERROR_QOS_IS_NOT_SUPPORTED 0x27
    410 #define BTH_ERROR_INSTANT_PASSED 0x28
    411 #define BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 0x29
    412 #define BTH_ERROR_UNSPECIFIED 0xFF
    413 
    414 #define L2CAP_MIN_MTU 48
    415 #define L2CAP_MAX_MTU 0xFFFF
    416 #define L2CAP_DEFAULT_MTU 672
    417 
    418 #define MAX_L2CAP_PING_DATA_LENGTH 44
    419 #define MAX_L2CAP_INFO_DATA_LENGTH 44
    420 
    421 #define BDIF_ADDRESS 0x00000001
    422 #define BDIF_COD 0x00000002
    423 #define BDIF_NAME 0x00000004
    424 #define BDIF_PAIRED 0x00000008
    425 #define BDIF_PERSONAL 0x00000010
    426 #define BDIF_CONNECTED 0x00000020
    427 #define BDIF_VALID_FLAGS (BDIF_ADDRESS|BDIF_COD|BDIF_NAME|BDIF_PAIRED|BDIF_PERSONAL|BDIF_CONNECTED)
    428 
    429 typedef struct _BTH_DEVICE_INFO {
    430   ULONG    flags;
    431   BTH_ADDR address;
    432   BTH_COD  classOfDevice;
    433   CHAR     name[BTH_MAX_NAME_SIZE];
    434 } BTH_DEVICE_INFO, *PBTH_DEVICE_INFO;
    435 
    436 typedef struct _BTH_RADIO_IN_RANGE {
    437   BTH_DEVICE_INFO deviceInfo;
    438   ULONG           previousDeviceFlags;
    439 } BTH_RADIO_IN_RANGE, *PBTH_RADIO_IN_RANGE;
    440 
    441 typedef struct _BTH_L2CAP_EVENT_INFO {
    442   BTH_ADDR bthAddress;
    443   USHORT   psm;
    444   UCHAR    connected;
    445   UCHAR    initiated;
    446 } BTH_L2CAP_EVENT_INFO, *PBTH_L2CAP_EVENT_INFO;
    447 
    448 #define HCI_CONNNECTION_TYPE_ACL 1
    449 #define HCI_CONNNECTION_TYPE_SCO 2
    450 
    451 typedef struct _BTH_HCI_EVENT_INFO {
    452   BTH_ADDR bthAddress;
    453   UCHAR    connectionType;
    454   UCHAR    connected;
    455 } BTH_HCI_EVENT_INFO, *PBTH_HCI_EVENT_INFO;
    456 
    457 #define MAX_UUIDS_IN_QUERY 12
    458 #define BTH_VID_DEFAULT_VALUE 0xFFFF
    459 
    460 #define SDP_ERROR_INVALID_SDP_VERSION 0x0001
    461 #define SDP_ERROR_INVALID_RECORD_HANDLE 0x0002
    462 #define SDP_ERROR_INVALID_REQUEST_SYNTAX 0x0003
    463 #define SDP_ERROR_INVALID_PDU_SIZE 0x0004
    464 #define SDP_ERROR_INVALID_CONTINUATION_STATE 0x0005
    465 #define SDP_ERROR_INSUFFICIENT_RESOURCES 0x0006
    466 
    467 #define SDP_ERROR_SUCCESS 0x0000
    468 #define SDP_ERROR_SERVER_INVALID_RESPONSE 0x0100
    469 #define SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE 0x0200
    470 #define SDP_ERROR_SERVER_BAD_FORMAT 0x0300
    471 #define SDP_ERROR_COULD_NOT_SEND_CONTINUE 0x0400
    472 #define SDP_ERROR_RESPONSE_TOO_LARGE 0x0500
    473 
    474 #define SDP_ATTRIB_RECORD_HANDLE 0x0000
    475 #define SDP_ATTRIB_CLASS_ID_LIST 0x0001
    476 #define SDP_ATTRIB_RECORD_STATE 0x0002
    477 #define SDP_ATTRIB_SERVICE_ID 0x0003
    478 #define SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST 0x0004
    479 #define SDP_ATTRIB_BROWSE_GROUP_LIST 0x0005
    480 #define SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST 0x0006
    481 #define SDP_ATTRIB_INFO_TIME_TO_LIVE 0x0007
    482 #define SDP_ATTRIB_AVAILABILITY 0x0008
    483 #define SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST 0x0009
    484 #define SDP_ATTRIB_DOCUMENTATION_URL 0x000A
    485 #define SDP_ATTRIB_CLIENT_EXECUTABLE_URL 0x000B
    486 #define SDP_ATTRIB_ICON_URL 0x000C
    487 #define SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST 0x000D
    488 
    489 #define SDP_ATTRIB_PROFILE_SPECIFIC 0x0200
    490 
    491 #define LANG_BASE_LANGUAGE_INDEX 0x0000
    492 #define LANG_BASE_ENCODING_INDEX 0x0001
    493 #define LANG_BASE_OFFSET_INDEX 0x0002
    494 #define LANG_DEFAULT_ID 0x0100
    495 
    496 #define STRING_NAME_OFFSET 0x0000
    497 #define STRING_DESCRIPTION_OFFSET 0x0001
    498 #define STRING_PROVIDER_NAME_OFFSET 0x0002
    499 
    500 #define SDP_ATTRIB_SDP_VERSION_NUMBER_LIST 0x0200
    501 #define SDP_ATTRIB_SDP_DATABASE_STATE 0x0201
    502 
    503 #define SDP_ATTRIB_BROWSE_GROUP_ID 0x0200
    504 
    505 #define SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK 0x0301
    506 
    507 #define SDP_ATTRIB_FAX_CLASS_1_SUPPORT 0x0302
    508 #define SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT 0x0303
    509 #define SDP_ATTRIB_FAX_CLASS_2_SUPPORT 0x0304
    510 #define SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT 0x0305
    511 
    512 #define SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL 0x0302
    513 
    514 #define SDP_ATTRIB_LAN_LPSUBNET 0x0200
    515 
    516 #define SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST 0x0303
    517 #define SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST 0x0301
    518 
    519 #define SDP_ATTRIB_SERVICE_VERSION 0x0300
    520 
    521 #define SDP_ATTRIB_PAN_NETWORK_ADDRESS 0x0306
    522 #define SDP_ATTRIB_PAN_WAP_GATEWAY 0x0307
    523 #define SDP_ATTRIB_PAN_HOME_PAGE_URL 0x0308
    524 #define SDP_ATTRIB_PAN_WAP_STACK_TYPE 0x0309
    525 #define SDP_ATTRIB_PAN_SECURITY_DESCRIPTION 0x030A
    526 #define SDP_ATTRIB_PAN_NET_ACCESS_TYPE 0x030B
    527 #define SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE 0x030C
    528 
    529 #define SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES 0x0310
    530 #define SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES 0x0311
    531 #define SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS 0x0312
    532 #define SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY 0x0313
    533 
    534 #define SDP_ATTRIB_DI_SPECIFICATION_ID 0x0200
    535 #define SDP_ATTRIB_DI_VENDOR_ID 0x0201
    536 #define SDP_ATTRIB_DI_PRODUCT_ID 0x0202
    537 #define SDP_ATTRIB_DI_VERSION 0x0203
    538 #define SDP_ATTRIB_DI_PRIMARY_RECORD 0x0204
    539 #define SDP_ATTRIB_DI_VENDOR_ID_SOURCE 0x0205
    540 
    541 #define SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER 0x0200
    542 #define SDP_ATTRIB_HID_PARSER_VERSION 0x0201
    543 #define SDP_ATTRIB_HID_DEVICE_SUBCLASS 0x0202
    544 #define SDP_ATTRIB_HID_COUNTRY_CODE 0x0203
    545 #define SDP_ATTRIB_HID_VIRTUAL_CABLE 0x0204
    546 #define SDP_ATTRIB_HID_RECONNECT_INITIATE 0x0205
    547 #define SDP_ATTRIB_HID_DESCRIPTOR_LIST 0x0206
    548 #define SDP_ATTRIB_HID_LANG_ID_BASE_LIST 0x0207
    549 #define SDP_ATTRIB_HID_SDP_DISABLE 0x0208
    550 #define SDP_ATTRIB_HID_BATTERY_POWER 0x0209
    551 #define SDP_ATTRIB_HID_REMOTE_WAKE 0x020A
    552 #define SDP_ATTRIB_HID_REPORT_LIST 0x020B
    553 #define SDP_ATTRIB_HID_SUPERVISION_TIMEOUT 0x020C
    554 #define SDP_ATTRIB_HID_NORMALLY_CONNECTABLE 0x020D
    555 #define SDP_ATTRIB_HID_BOOT_DEVICE 0x020E
    556 
    557 #define CORDLESS_EXTERNAL_NETWORK_PSTN 0x01
    558 #define CORDLESS_EXTERNAL_NETWORK_ISDN 0x02
    559 #define CORDLESS_EXTERNAL_NETWORK_GSM 0x03
    560 #define CORDLESS_EXTERNAL_NETWORK_CDMA 0x04
    561 #define CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR 0x05
    562 #define CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED 0x06
    563 #define CORDLESS_EXTERNAL_NETWORK_OTHER 0x07
    564 
    565 #define OBJECT_PUSH_FORMAT_VCARD_2_1 0x01
    566 #define OBJECT_PUSH_FORMAT_VCARD_3_0 0x02
    567 #define OBJECT_PUSH_FORMAT_VCAL_1_0 0x03
    568 #define OBJECT_PUSH_FORMAT_ICAL_2_0 0x04
    569 #define OBJECT_PUSH_FORMAT_VNOTE 0x05
    570 #define OBJECT_PUSH_FORMAT_VMESSAGE 0x06
    571 #define OBJECT_PUSH_FORMAT_ANY 0xFF
    572 
    573 #define SYNCH_DATA_STORE_PHONEBOOK 0x01
    574 #define SYNCH_DATA_STORE_CALENDAR 0x03
    575 #define SYNCH_DATA_STORE_NOTES 0x05
    576 #define SYNCH_DATA_STORE_MESSAGES 0x06
    577 
    578 #define DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG 0x0001
    579 #define DI_VENDOR_ID_SOURCE_USB_IF 0x0002
    580 
    581 #define PSM_SDP 0x0001
    582 #define PSM_RFCOMM 0x0003
    583 #define PSM_TCS_BIN 0x0005
    584 #define PSM_TCS_BIN_CORDLESS 0x0007
    585 #define PSM_BNEP 0x0000
    586 #define PSM_HID_CONTROL 0x0011
    587 #define PSM_HID_INTERRUPT 0x0013
    588 #define PSM_AVCTP 0x0017
    589 #define PSM_AVDTP 0x0019
    590 #define PSM_UDI_C_PLANE 0x001D
    591 
    592 #define STR_ADDR_FMTA "(%02x:%02x:%02x:%02x:%02x:%02x)"
    593 #define STR_ADDR_FMTW L"(%02x:%02x:%02x:%02x:%02x:%02x)"
    594 
    595 #define STR_ADDR_SHORT_FMTA "%04x%08x"
    596 #define STR_ADDR_SHORT_FMTW L"%04x%08x"
    597 
    598 #define STR_ADDR_FMT __MINGW_NAME_AW(STR_ADDR_FMT)
    599 #define STR_ADDR_SHORT_FMT __MINGW_NAME_AW(STR_ADDR_SHORT_FMT)
    600 
    601 #define GET_BITS(X,Y,Z) (((X)>>(Y))&Z)
    602 #define GET_BIT(X,Y) GET_BITS(X,Y,0x1)
    603 
    604 #define LMP_3_SLOT_PACKETS(X) GET_BIT(X, 1)
    605 #define LMP_ENCRYPTION(X) GET_BIT(X, 2)
    606 #define LMP_SLOT_OFFSET(X) GET_BIT(X, 3)
    607 #define LMP_TIMING_ACCURACY(X) GET_BIT(X, 4)
    608 #define LMP_SWITCH(X) GET_BIT(X, 5)
    609 #define LMP_HOLD_MODE(X) GET_BIT(X, 6)
    610 #define LMP_SNIFF_MODE(X) GET_BIT(X, 7)
    611 #define LMP_PARK_MODE(X) GET_BIT(X, 8)
    612 #define LMP_RSSI(X) GET_BIT(X, 9)
    613 #define LMP_CHANNEL_QUALITY_DRIVEN_MODE(X) GET_BIT(X, 10)
    614 #define LMP_SCO_LINK(X) GET_BIT(X, 11)
    615 #define LMP_HV2_PACKETS(X) GET_BIT(X, 12)
    616 #define LMP_HV3_PACKETS(X) GET_BIT(X, 13)
    617 #define LMP_MU_LAW_LOG(X) GET_BIT(X, 14)
    618 #define LMP_A_LAW_LOG(X) GET_BIT(X, 15)
    619 #define LMP_CVSD(X) GET_BIT(X, 16)
    620 #define LMP_PAGING_SCHEME(X) GET_BIT(X, 17)
    621 #define LMP_POWER_CONTROL(X) GET_BIT(X, 18)
    622 #define LMP_TRANSPARENT_SCO_DATA(X) GET_BIT(X, 19)
    623 #define LMP_FLOW_CONTROL_LAG(X) GET_BITS(X, 20, 0x3)
    624 
    625 #ifdef __cplusplus
    626 }
    627 #endif
    628 #endif /*_INC_BTHDEF*/
    629