jwabthdef.pas 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526
  1. {******************************************************************************}
  2. { }
  3. { BlueTooth API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  9. { Marcel van Brakel. All Rights Reserved. }
  10. { }
  11. { Contributors: John Penman }
  12. { }
  13. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  14. { }
  15. { You may retrieve the latest version of this file at the Project JEDI }
  16. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  17. { }
  18. { The contents of this file are used with permission, subject to the Mozilla }
  19. { Public License Version 1.1 (the "License"); you may not use this file except }
  20. { in compliance with the License. You may obtain a copy of the License at }
  21. { http://www.mozilla.org/MPL/MPL-1.1.html }
  22. { }
  23. { Software distributed under the License is distributed on an "AS IS" basis, }
  24. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  25. { the specific language governing rights and limitations under the License. }
  26. { }
  27. { Alternatively, the contents of this file may be used under the terms of the }
  28. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  29. { provisions of the LGPL License are applicable instead of those above. }
  30. { If you wish to allow use of your version of this file only under the terms }
  31. { of the LGPL License and not to allow others to use your version of this file }
  32. { under the MPL, indicate your decision by deleting the provisions above and }
  33. { replace them with the notice and other provisions required by the LGPL }
  34. { License. If you do not delete the provisions above, a recipient may use }
  35. { your version of this file under either the MPL or the LGPL License. }
  36. { }
  37. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  38. { }
  39. {******************************************************************************}
  40. unit JwaBtHDef;
  41. {$WEAKPACKAGEUNIT}
  42. {$HPPEMIT ''}
  43. {$HPPEMIT '#include "bthdef.h"'}
  44. {$HPPEMIT ''}
  45. {$I jediapilib.inc}
  46. interface
  47. uses
  48. JwaWinType, JwaBthSdpDef;
  49. const
  50. GUID_BTHPORT_DEVICE_INTERFACE: TGUID = '{0850302A-B344-4FDA-9BE9-90576B8D46F0}';
  51. {$EXTERNALSYM GUID_BTHPORT_DEVICE_INTERFACE}
  52. GUID_BLUETOOTH_RADIO_IN_RANGE: TGUID = '{EA3B5B82-26EE-450E-B0D8-D26FE30A3869}';
  53. {$EXTERNALSYM GUID_BLUETOOTH_RADIO_IN_RANGE}
  54. GUID_BLUETOOTH_RADIO_OUT_OF_RANGE: TGUID = '{E28867C9-C2AA-4CED-B969-4570866037C4}';
  55. {$EXTERNALSYM GUID_BLUETOOTH_RADIO_OUT_OF_RANGE}
  56. GUID_BLUETOOTH_PIN_REQUEST: TGUID = '{BD198B7C-24AB-4B9A-8C0D-A8EA8349AA16}';
  57. {$EXTERNALSYM GUID_BLUETOOTH_PIN_REQUEST}
  58. GUID_BLUETOOTH_L2CAP_EVENT: TGUID = '{7EAE4030-B709-4AA8-AC55-E953829C9DAA}';
  59. {$EXTERNALSYM GUID_BLUETOOTH_L2CAP_EVENT}
  60. GUID_BLUETOOTH_HCI_EVENT: TGUID = '{FC240062-1541-49BE-B463-84C4DCD7BF7F}';
  61. {$EXTERNALSYM GUID_BLUETOOTH_HCI_EVENT}
  62. //
  63. // Bluetooth base UUID for service discovery
  64. //
  65. BLUETOOTH_BASE_UUID = '{00000000-0000-1000-8000-00805F9B34FB}';
  66. {$EXTERNALSYM BLUETOOTH_BASE_UUID}
  67. //
  68. // UUID for the root of the browse group list
  69. //
  70. SDP_PROTOCOL_UUID: TGUID = '{00000001-0000-1000-8000-00805F9B34FB}';
  71. {$EXTERNALSYM SDP_PROTOCOL_UUID}
  72. UDP_PROTOCOL_UUID: TGUID = '{00000002-0000-1000-8000-00805F9B34FB}';
  73. {$EXTERNALSYM UDP_PROTOCOL_UUID}
  74. RFCOMM_PROTOCOL_UUID: TGUID = '{00000003-0000-1000-8000-00805F9B34FB}';
  75. {$EXTERNALSYM RFCOMM_PROTOCOL_UUID}
  76. TCP_PROTOCOL_UUID: TGUID = '{00000004-0000-1000-8000-00805F9B34FB}';
  77. {$EXTERNALSYM TCP_PROTOCOL_UUID}
  78. TCSBIN_PROTOCOL_UUID: TGUID = '{00000005-0000-1000-8000-00805F9B34FB}';
  79. {$EXTERNALSYM TCSBIN_PROTOCOL_UUID}
  80. TCSAT_PROTOCOL_UUID: TGUID = '{00000006-0000-1000-8000-00805F9B34FB}';
  81. {$EXTERNALSYM TCSAT_PROTOCOL_UUID}
  82. OBEX_PROTOCOL_UUID: TGUID = '{00000008-0000-1000-8000-00805F9B34FB}';
  83. {$EXTERNALSYM OBEX_PROTOCOL_UUID}
  84. IP_PROTOCOL_UUID: TGUID = '{00000009-0000-1000-8000-00805F9B34FB}';
  85. {$EXTERNALSYM IP_PROTOCOL_UUID}
  86. FTP_PROTOCOL_UUID: TGUID = '{0000000A-0000-1000-8000-00805F9B34FB}';
  87. {$EXTERNALSYM FTP_PROTOCOL_UUID}
  88. HTTP_PROTOCOL_UUID: TGUID = '{0000000C-0000-1000-8000-00805F9B34FB}';
  89. {$EXTERNALSYM HTTP_PROTOCOL_UUID}
  90. WSP_PROTOCOL_UUID: TGUID = '{0000000E-0000-1000-8000-00805F9B34FB}';
  91. {$EXTERNALSYM WSP_PROTOCOL_UUID}
  92. BNEP_PROTOCOL_UUID: TGUID = '{0000000F-0000-1000-8000-00805F9B34FB}';
  93. {$EXTERNALSYM BNEP_PROTOCOL_UUID}
  94. UPNP_PROTOCOL_UUID: TGUID = '{00000010-0000-1000-8000-00805F9B34FB}';
  95. {$EXTERNALSYM UPNP_PROTOCOL_UUID}
  96. HID_PROTOCOL_UUID: TGUID = '{00000011-0000-1000-8000-00805F9B34FB}';
  97. {$EXTERNALSYM HID_PROTOCOL_UUID}
  98. HCCC_PROTOCOL_UUID: TGUID = '{00000012-0000-1000-8000-00805F9B34FB}';
  99. {$EXTERNALSYM HCCC_PROTOCOL_UUID}
  100. HCDC_PROTOCOL_UUID: TGUID = '{00000014-0000-1000-8000-00805F9B34FB}';
  101. {$EXTERNALSYM HCDC_PROTOCOL_UUID}
  102. HN_PROTOCOL_UUID: TGUID = '{00000016-0000-1000-8000-00805F9B34FB}';
  103. {$EXTERNALSYM HN_PROTOCOL_UUID}
  104. AVCTP_PROTOCOL_UUID: TGUID = '{00000017-0000-1000-8000-00805F9B34FB}';
  105. {$EXTERNALSYM AVCTP_PROTOCOL_UUID}
  106. AVDTP_PROTOCOL_UUID: TGUID = '{00000019-0000-1000-8000-00805F9B34FB}';
  107. {$EXTERNALSYM AVDTP_PROTOCOL_UUID}
  108. CMPT_PROTOCOL_UUID: TGUID = '{0000001B-0000-1000-8000-00805F9B34FB}';
  109. {$EXTERNALSYM CMPT_PROTOCOL_UUID}
  110. UDI_C_PLANE_PROTOCOL_UUID: TGUID= '{0000001D-0000-1000-8000-00805F9B34FB}';
  111. {$EXTERNALSYM UDI_C_PLANE_PROTOCOL_UUID}
  112. L2CAP_PROTOCOL_UUID: TGUID = '{00000100-0000-1000-8000-00805F9B34FB}';
  113. {$EXTERNALSYM L2CAP_PROTOCOL_UUID}
  114. SDP_PROTOCOL_UUID16 = $0001;
  115. {$EXTERNALSYM SDP_PROTOCOL_UUID16}
  116. UDP_PROTOCOL_UUID16 = $0002;
  117. {$EXTERNALSYM UDP_PROTOCOL_UUID16}
  118. RFCOMM_PROTOCOL_UUID16 = $0003;
  119. {$EXTERNALSYM RFCOMM_PROTOCOL_UUID16}
  120. TCP_PROTOCOL_UUID16 = $0004;
  121. {$EXTERNALSYM TCP_PROTOCOL_UUID16}
  122. TCSBIN_PROTOCOL_UUID16 = $0005;
  123. {$EXTERNALSYM TCSBIN_PROTOCOL_UUID16}
  124. TCSAT_PROTOCOL_UUID16 = $0006;
  125. {$EXTERNALSYM TCSAT_PROTOCOL_UUID16}
  126. OBEX_PROTOCOL_UUID16 = $0008;
  127. {$EXTERNALSYM OBEX_PROTOCOL_UUID16}
  128. IP_PROTOCOL_UUID16 = $0009;
  129. {$EXTERNALSYM IP_PROTOCOL_UUID16}
  130. FTP_PROTOCOL_UUID16 = $000A;
  131. {$EXTERNALSYM FTP_PROTOCOL_UUID16}
  132. HTTP_PROTOCOL_UUID16 = $000C;
  133. {$EXTERNALSYM HTTP_PROTOCOL_UUID16}
  134. WSP_PROTOCOL_UUID16 = $000E;
  135. {$EXTERNALSYM WSP_PROTOCOL_UUID16}
  136. BNEP_PROTOCOL_UUID16 = $000;
  137. {$EXTERNALSYM BNEP_PROTOCOL_UUID16}
  138. UPNP_PROTOCOL_UUID16 = $0010;
  139. {$EXTERNALSYM UPNP_PROTOCOL_UUID16}
  140. HID_PROTOCOL_UUID16 = $0011;
  141. {$EXTERNALSYM HID_PROTOCOL_UUID16}
  142. HCCC_PROTOCOL_UUID16 = $0012;
  143. {$EXTERNALSYM HCCC_PROTOCOL_UUID16}
  144. HCDC_PROTOCOL_UUID16 = $0014;
  145. {$EXTERNALSYM HCDC_PROTOCOL_UUID16}
  146. HCN_PROTOCOL_UUID16 = $0016;
  147. {$EXTERNALSYM HCN_PROTOCOL_UUID16}
  148. AVCTP_PROTOCOL_UUID16 = $0017;
  149. {$EXTERNALSYM AVCTP_PROTOCOL_UUID16}
  150. AVDTP_PROTOCOL_UUID16 = $0019;
  151. {$EXTERNALSYM AVDTP_PROTOCOL_UUID16}
  152. CMPT_PROTOCOL_UUID16 = $001B;
  153. {$EXTERNALSYM CMPT_PROTOCOL_UUID16}
  154. UDI_C_PLANE_PROTOCOL_UUID16 = $001D;
  155. {$EXTERNALSYM UDI_C_PLANE_PROTOCOL_UUID16}
  156. L2CAP_PROTOCOL_UUID16 = $0100;
  157. {$EXTERNALSYM L2CAP_PROTOCOL_UUID16}
  158. ServiceDiscoveryServerServiceClassID_UUID: TGUID = '{00001000-0000-1000-8000-00805F9B34FB}';
  159. BrowseGroupDescriptorServiceClassID_UUID: TGUID = '{00001001-0000-1000-8000-00805F9B34FB}';
  160. PublicBrowseGroupServiceClass_UUID: TGUID = '{00001002-0000-1000-8000-00805F9B34FB}';
  161. SerialPortServiceClass_UUID: TGUID = '{00001101-0000-1000-8000-00805F9B34FB}';
  162. LANAccessUsingPPPServiceClass_UUID: TGUID = '{00001102-0000-1000-8000-00805F9B34FB}';
  163. DialupNetworkingServiceClass_UUID: TGUID = '{00001103-0000-1000-8000-00805F9B34FB}';
  164. IrMCSyncServiceClass_UUID: TGUID = '{00001104-0000-1000-8000-00805F9B34FB}';
  165. OBEXObjectPushServiceClass_UUID: TGUID = '{00001105-0000-1000-8000-00805F9B34FB}';
  166. OBEXFileTransferServiceClass_UUID: TGUID = '{00001106-0000-1000-8000-00805F9B34FB}';
  167. IrMCSyncCommandServiceClass_UUID: TGUID = '{00001107-0000-1000-8000-00805F9B34FB}';
  168. HeadsetServiceClass_UUID: TGUID = '{00001108-0000-1000-8000-00805F9B34FB}';
  169. CordlessTelephonyServiceClass_UUID: TGUID = '{00001109-0000-1000-8000-00805F9B34FB}';
  170. AudioSourceServiceClass_UUID: TGUID = '{0000110A-0000-1000-8000-00805F9B34FB}';
  171. AudioSinkServiceClass_UUID: TGUID = '{0000110B-0000-1000-8000-00805F9B34FB}';
  172. AVRemoteControlTargetServiceClass_UUID: TGUID = '{0000110C-0000-1000-8000-00805F9B34FB}';
  173. AdvancedAudioDistributionServiceClass_UUID: TGUID = '{0000110D-0000-1000-8000-00805F9B34FB}';
  174. AVRemoteControlServiceClass_UUID: TGUID = '{0000110E-0000-1000-8000-00805F9B34FB}';
  175. VideoConferencingServiceClass_UUID: TGUID = '{0000110F-0000-1000-8000-00805F9B34FB}';
  176. IntercomServiceClass_UUID: TGUID = '{00001110-0000-1000-8000-00805F9B34FB}';
  177. FaxServiceClass_UUID: TGUID = '{00001111-0000-1000-8000-00805F9B34FB}';
  178. HeadsetAudioGatewayServiceClass_UUID: TGUID = '{00001112-0000-1000-8000-00805F9B34FB}';
  179. WAPServiceClass_UUID: TGUID = '{00001113-0000-1000-8000-00805F9B34FB}';
  180. WAPClientServiceClass_UUID: TGUID = '{00001114-0000-1000-8000-00805F9B34FB}';
  181. PANUServiceClass_UUID: TGUID = '{00001115-0000-1000-8000-00805F9B34FB}';
  182. NAPServiceClass_UUID: TGUID = '{00001116-0000-1000-8000-00805F9B34FB}';
  183. GNServiceClass_UUID: TGUID = '{00001117-0000-1000-8000-00805F9B34FB}';
  184. DirectPrintingServiceClass_UUID: TGUID = '{00001118-0000-1000-8000-00805F9B34FB}';
  185. ReferencePrintingServiceClass_UUID: TGUID = '{00001119-0000-1000-8000-00805F9B34FB}';
  186. ImagingServiceClass_UUID: TGUID = '{0000111A-0000-1000-8000-00805F9B34FB}';
  187. ImagingResponderServiceClass_UUID: TGUID = '{0000111B-0000-1000-8000-00805F9B34FB}';
  188. ImagingAutomaticArchiveServiceClass_UUID: TGUID = '{0000111C-0000-1000-8000-00805F9B34FB}';
  189. ImagingReferenceObjectsServiceClass_UUID: TGUID = '{0000111D-0000-1000-8000-00805F9B34FB}';
  190. HandsfreeServiceClass_UUID: TGUID = '{0000111E-0000-1000-8000-00805F9B34FB}';
  191. HandsfreeAudioGatewayServiceClass_UUID: TGUID = '{0000111F-0000-1000-8000-00805F9B34FB}';
  192. DirectPrintingReferenceObjectsServiceClass_UUID: TGUID = '{00001120-0000-1000-8000-00805F9B34FB}';
  193. ReflectedUIServiceClass_UUID: TGUID = '{00001121-0000-1000-8000-00805F9B34FB}';
  194. BasicPringingServiceClass_UUID: TGUID = '{00001122-0000-1000-8000-00805F9B34FB}';
  195. PrintingStatusServiceClass_UUID: TGUID = '{00001123-0000-1000-8000-00805F9B34FB}';
  196. HumanInterfaceDeviceServiceClass_UUID: TGUID = '{00001124-0000-1000-8000-00805F9B34FB}';
  197. HardcopyCableReplacementServiceClass_UUID: TGUID = '{00001125-0000-1000-8000-00805F9B34FB}';
  198. HCRPrintServiceClass_UUID: TGUID = '{00001126-0000-1000-8000-00805F9B34FB}';
  199. HCRScanServiceClass_UUID: TGUID = '{00001127-0000-1000-8000-00805F9B34FB}';
  200. CommonISDNAccessServiceClass_UUID: TGUID = '{00001128-0000-1000-8000-00805F9B34FB}';
  201. VideoConferencingGWServiceClass_UUID: TGUID = '{00001129-0000-1000-8000-00805F9B34FB}';
  202. UDIMTServiceClass_UUID: TGUID = '{0000112A-0000-1000-8000-00805F9B34FB}';
  203. UDITAServiceClass_UUID: TGUID = '{0000112B-0000-1000-8000-00805F9B34FB}';
  204. AudioVideoServiceClass_UUID: TGUID = '{0000112C-0000-1000-8000-00805F9B34FB}';
  205. PnPInformationServiceClass_UUID: TGUID = '{00001200-0000-1000-8000-00805F9B34FB}';
  206. GenericNetworkingServiceClass_UUID: TGUID = '{00001201-0000-1000-8000-00805F9B34FB}';
  207. GenericFileTransferServiceClass_UUID: TGUID = '{00001202-0000-1000-8000-00805F9B34FB}';
  208. GenericAudioServiceClass_UUID: TGUID = '{00001203-0000-1000-8000-00805F9B34FB}';
  209. GenericTelephonyServiceClass_UUID: TGUID = '{00001204-0000-1000-8000-00805F9B34FB}';
  210. ServiceDiscoveryServerServiceClassID_UUID16 = $1000;
  211. BrowseGroupDescriptorServiceClassID_UUID16 = $1001;
  212. PublicBrowseGroupServiceClassID_UUID16 = $1002;
  213. SerialPortServiceClassID_UUID16 = $1101;
  214. LANAccessUsingPPPServiceClassID_UUID16 = $1102;
  215. DialupNetworkingServiceClassID_UUID16 = $1103;
  216. IrMCSyncServiceClassID_UUID16 = $1104;
  217. OBEXObjectPushServiceClassID_UUID16 = $1105;
  218. OBEXFileTransferServiceClassID_UUID16 = $1106;
  219. IrMcSyncCommandServiceClassID_UUID16 = $1107;
  220. HeadsetServiceClassID_UUID16 = $1108;
  221. CordlessServiceClassID_UUID16 = $1109;
  222. AudioSourceServiceClassID_UUID16 = $110A;
  223. AudioSinkSourceServiceClassID_UUID16 = $110B;
  224. AVRemoteControlTargetServiceClassID_UUID16 = $110C;
  225. AdvancedAudioDistributionServiceClassID_UUID16 = $110D;
  226. AVRemoteControlServiceClassID_UUID16 = $110E;
  227. VideoConferencingServiceClassID_UUID16 = $110;
  228. IntercomServiceClassID_UUID16 = $1110;
  229. FaxServiceClassID_UUID16 = $1111;
  230. HeadsetAudioGatewayServiceClassID_UUID16 = $1112;
  231. WAPServiceClassID_UUID16 = $1113;
  232. WAPClientServiceClassID_UUID16 = $1114;
  233. PANUServiceClassID_UUID16 = $1115;
  234. NAPServiceClassID_UUID16 = $1116;
  235. GNServiceClassID_UUID16 = $1117;
  236. DirectPrintingServiceClassID_UUID16 = $1118;
  237. ReferencePrintingServiceClassID_UUID16 = $1119;
  238. ImagingServiceClassID_UUID16 = $111A;
  239. ImagingResponderServiceClassID_UUID16 = $111B;
  240. ImagingAutomaticArchiveServiceClassID_UUID16 = $111C;
  241. ImagingReferenceObjectsServiceClassID_UUID16 = $111D;
  242. HandsfreeServiceClassID_UUID16 = $111E;
  243. HandsfreeAudioGatewayServiceClassID_UUID16 = $111F;
  244. DirectPrintingReferenceObjectsServiceClassID_UUID16 = $1120;
  245. ReflectsUIServiceClassID_UUID16 = $1121;
  246. BasicPrintingServiceClassID_UUID16 = $1122;
  247. PrintingStatusServiceClassID_UUID16 = $1123;
  248. HumanInterfaceDeviceServiceClassID_UUID16 = $1124;
  249. HardcopyCableReplacementServiceClassID_UUID16 = $1125;
  250. HCRPrintServiceClassID_UUID16 = $1126;
  251. HCRScanServiceClassID_UUID16 = $1127;
  252. CommonISDNAccessServiceClass_UUID16 = $1128;
  253. VideoConferencingGWServiceClass_UUID16 = $1129;
  254. UDIMTServiceClass_UUID16 = $112A;
  255. UDITAServiceClass_UUID16 = $112B;
  256. AudioVideoServiceClass_UUID16 = $112C;
  257. PnPInformationServiceClassID_UUID16 = $1200;
  258. {$EXTERNALSYM PnPInformationServiceClassID_UUID16}
  259. GenericNetworkingServiceClassID_UUID16 = $1201;
  260. {$EXTERNALSYM GenericNetworkingServiceClassID_UUID16}
  261. GenericFileTransferServiceClassID_UUID16 = $1202;
  262. {$EXTERNALSYM GenericFileTransferServiceClassID_UUID16}
  263. GenericAudioServiceClassID_UUID16 = $1203;
  264. {$EXTERNALSYM GenericAudioServiceClassID_UUID16}
  265. GenericTelephonyServiceClassID_UUID16 = $1204;
  266. {$EXTERNALSYM GenericTelephonyServiceClassID_UUID16}
  267. //
  268. // max length of device friendly name.
  269. //
  270. BTH_MAX_NAME_SIZE = 248;
  271. {$EXTERNALSYM BTH_MAX_NAME_SIZE}
  272. BTH_MAX_PIN_SIZE = 16;
  273. {$EXTERNALSYM BTH_MAX_PIN_SIZE}
  274. BTH_LINK_KEY_LENGTH = 16;
  275. {$EXTERNALSYM BTH_LINK_KEY_LENGTH}
  276. BTH_MFG_ERICSSON = 0;
  277. {$EXTERNALSYM BTH_MFG_ERICSSON}
  278. BTH_MFG_NOKIA = 1;
  279. {$EXTERNALSYM BTH_MFG_NOKIA}
  280. BTH_MFG_INTEL = 2;
  281. {$EXTERNALSYM BTH_MFG_INTEL}
  282. BTH_MFG_IBM = 3;
  283. {$EXTERNALSYM BTH_MFG_IBM}
  284. BTH_MFG_TOSHIBA = 4;
  285. {$EXTERNALSYM BTH_MFG_TOSHIBA}
  286. BTH_MFG_3COM = 5;
  287. {$EXTERNALSYM BTH_MFG_3COM}
  288. BTH_MFG_MICROSOFT = 6;
  289. {$EXTERNALSYM BTH_MFG_MICROSOFT}
  290. BTH_MFG_LUCENT = 7;
  291. {$EXTERNALSYM BTH_MFG_LUCENT}
  292. BTH_MFG_MOTOROLA = 8;
  293. {$EXTERNALSYM BTH_MFG_MOTOROLA}
  294. BTH_MFG_INFINEON = 9;
  295. {$EXTERNALSYM BTH_MFG_INFINEON}
  296. BTH_MFG_CSR = 10;
  297. {$EXTERNALSYM BTH_MFG_CSR}
  298. BTH_MFG_SILICONWAVE = 11;
  299. {$EXTERNALSYM BTH_MFG_SILICONWAVE}
  300. BTH_MFG_DIGIANSWER = 12;
  301. {$EXTERNALSYM BTH_MFG_DIGIANSWER}
  302. BTH_MFG_TI = 13;
  303. {$EXTERNALSYM BTH_MFG_TI}
  304. BTH_MFG_PARTHUS = 14;
  305. {$EXTERNALSYM BTH_MFG_PARTHUS}
  306. BTH_MFG_BROADCOM = 15;
  307. {$EXTERNALSYM BTH_MFG_BROADCOM}
  308. BTH_MFG_MITEL = 16;
  309. {$EXTERNALSYM BTH_MFG_MITEL}
  310. BTH_MFG_WIDCOMM = 17;
  311. {$EXTERNALSYM BTH_MFG_WIDCOMM}
  312. BTH_MFG_ZEEVO = 18;
  313. {$EXTERNALSYM BTH_MFG_ZEEVO}
  314. BTH_MFG_ATMEL = 19;
  315. {$EXTERNALSYM BTH_MFG_ATMEL}
  316. BTH_MFG_MITSIBUSHI = 20;
  317. {$EXTERNALSYM BTH_MFG_MITSIBUSHI}
  318. BTH_MFG_RTX_TELECOM = 21;
  319. {$EXTERNALSYM BTH_MFG_RTX_TELECOM}
  320. BTH_MFG_KC_TECHNOLOGY = 22;
  321. {$EXTERNALSYM BTH_MFG_KC_TECHNOLOGY}
  322. BTH_MFG_NEWLOGIC = 23;
  323. {$EXTERNALSYM BTH_MFG_NEWLOGIC}
  324. BTH_MFG_TRANSILICA = 24;
  325. {$EXTERNALSYM BTH_MFG_TRANSILICA}
  326. BTH_MFG_ROHDE_SCHWARZ = 25;
  327. {$EXTERNALSYM BTH_MFG_ROHDE_SCHWARZ}
  328. BTH_MFG_TTPCOM = 26;
  329. {$EXTERNALSYM BTH_MFG_TTPCOM}
  330. BTH_MFG_SIGNIA = 27;
  331. {$EXTERNALSYM BTH_MFG_SIGNIA}
  332. BTH_MFG_CONEXANT = 28;
  333. {$EXTERNALSYM BTH_MFG_CONEXANT}
  334. BTH_MFG_QUALCOMM = 29;
  335. {$EXTERNALSYM BTH_MFG_QUALCOMM}
  336. BTH_MFG_INVENTEL = 30;
  337. {$EXTERNALSYM BTH_MFG_INVENTEL}
  338. BTH_MFG_AVM_BERLIN = 31;
  339. {$EXTERNALSYM BTH_MFG_AVM_BERLIN}
  340. BTH_MFG_BANDSPEED = 32;
  341. {$EXTERNALSYM BTH_MFG_BANDSPEED}
  342. BTH_MFG_MANSELLA = 33;
  343. {$EXTERNALSYM BTH_MFG_MANSELLA}
  344. BTH_MFG_NEC = 34;
  345. {$EXTERNALSYM BTH_MFG_NEC}
  346. BTH_MFG_WAVEPLUS_TECHNOLOGY_CO = 35;
  347. {$EXTERNALSYM BTH_MFG_WAVEPLUS_TECHNOLOGY_CO}
  348. BTH_MFG_ALCATEL = 36;
  349. {$EXTERNALSYM BTH_MFG_ALCATEL}
  350. BTH_MFG_PHILIPS_SEMICONDUCTOR = 37;
  351. {$EXTERNALSYM BTH_MFG_PHILIPS_SEMICONDUCTOR}
  352. BTH_MFG_C_TECHNOLOGIES = 38;
  353. {$EXTERNALSYM BTH_MFG_C_TECHNOLOGIES}
  354. BTH_MFG_OPEN_INTERFACE = 39;
  355. {$EXTERNALSYM BTH_MFG_OPEN_INTERFACE}
  356. BTH_MFG_RF_MICRO_DEVICES = 40;
  357. {$EXTERNALSYM BTH_MFG_RF_MICRO_DEVICES}
  358. BTH_MFG_HITACHI = 41;
  359. {$EXTERNALSYM BTH_MFG_HITACHI}
  360. BTH_MFG_SYMBOL_TECHNOLOGIES = 42;
  361. {$EXTERNALSYM BTH_MFG_SYMBOL_TECHNOLOGIES}
  362. BTH_MFG_TENOVIS = 43;
  363. {$EXTERNALSYM BTH_MFG_TENOVIS}
  364. BTH_MFG_MACRONIX_INTERNATIONAL = 44;
  365. {$EXTERNALSYM BTH_MFG_MACRONIX_INTERNATIONAL}
  366. BTH_MFG_INTERNAL_USE = 65535;
  367. {$EXTERNALSYM BTH_MFG_INTERNAL_USE}
  368. type
  369. BTH_ADDR = Int64;
  370. {$EXTERNALSYM BTH_ADDR}
  371. PBTH_ADDR = ^BTH_ADDR;
  372. {$EXTERNALSYM PBTH_ADDR}
  373. BTH_COD = ULONG;
  374. {$EXTERNALSYM BTH_COD}
  375. PBTH_COD = ^BTH_COD;
  376. {$EXTERNALSYM PBTH_COD}
  377. BTH_LAP = ULONG;
  378. {$EXTERNALSYM BTH_LAP}
  379. PBTH_LAP = ^BTH_LAP;
  380. {$EXTERNALSYM PBTH_LAP}
  381. const
  382. BTH_ADDR_NULL = Int64($0000000000000000);
  383. {$EXTERNALSYM BTH_ADDR_NULL}
  384. NAP_MASK = Int64($FFFF00000000);
  385. {$EXTERNALSYM NAP_MASK}
  386. SAP_MASK = Int64($0000FFFFFFFF);
  387. {$EXTERNALSYM SAP_MASK}
  388. NAP_BIT_OFFSET = 8 * 4;
  389. {$EXTERNALSYM NAP_BIT_OFFSET}
  390. SAP_BIT_OFFSET = 0;
  391. {$EXTERNALSYM SAP_BIT_OFFSET}
  392. function GET_NAP(_bth_addr: BTH_ADDR): Word;
  393. function GET_SAP(_bth_addr: BTH_ADDR): ULONG;
  394. function SET_NAP(_nap: Word): Int64; //todo impl
  395. function SET_SAP(_sap: ULONG): Int64; // todo impl
  396. function SET_NAP_SAP(_nap, _sap: Word): Int64; // todo impl
  397. const
  398. COD_FORMAT_BIT_OFFSET = 0;
  399. {$EXTERNALSYM COD_FORMAT_BIT_OFFSET}
  400. COD_MINOR_BIT_OFFSET = 2;
  401. {$EXTERNALSYM COD_MINOR_BIT_OFFSET}
  402. COD_MAJOR_BIT_OFFSET = 8 * 1;
  403. {$EXTERNALSYM COD_MAJOR_BIT_OFFSET}
  404. COD_SERVICE_BIT_OFFSET = 8 * 1 + 5;
  405. {$EXTERNALSYM COD_SERVICE_BIT_OFFSET}
  406. COD_FORMAT_MASK = $000003;
  407. {$EXTERNALSYM COD_FORMAT_MASK}
  408. COD_MINOR_MASK = $0000FC;
  409. {$EXTERNALSYM COD_MINOR_MASK}
  410. COD_MAJOR_MASK = $001F00;
  411. {$EXTERNALSYM COD_MAJOR_MASK}
  412. COD_SERVICE_MASK = $FFE000;
  413. {$EXTERNALSYM COD_SERVICE_MASK}
  414. function GET_COD_FORMAT(_cod: BTH_COD): BTH_COD;
  415. function GET_COD_MINOR(_cod: BTH_COD): BTH_COD;
  416. function GET_COD_MAJOR(_cod: BTH_COD): BTH_COD;
  417. function GET_COD_SERVICE(_cod: BTH_COD): BTH_COD;
  418. procedure SET_COD_MINOR(var _cod: BTH_COD; _minor: BTH_COD);
  419. procedure SET_COD_MAJOR(var _cod: BTH_COD; _major: BTH_COD);
  420. procedure SET_COD_SERVICE(var _cod: BTH_COD; _service: BTH_COD);
  421. const
  422. COD_VERSION = $0;
  423. {$EXTERNALSYM COD_VERSION}
  424. COD_SERVICE_LIMITED = $0001;
  425. {$EXTERNALSYM COD_SERVICE_LIMITED}
  426. COD_SERVICE_POSITIONING = $0008;
  427. {$EXTERNALSYM COD_SERVICE_POSITIONING}
  428. COD_SERVICE_NETWORKING = $0010;
  429. {$EXTERNALSYM COD_SERVICE_NETWORKING}
  430. COD_SERVICE_RENDERING = $0020;
  431. {$EXTERNALSYM COD_SERVICE_RENDERING}
  432. COD_SERVICE_CAPTURING = $0040;
  433. {$EXTERNALSYM COD_SERVICE_CAPTURING}
  434. COD_SERVICE_OBJECT_XFER = $0080;
  435. {$EXTERNALSYM COD_SERVICE_OBJECT_XFER}
  436. COD_SERVICE_AUDIO = $0100;
  437. {$EXTERNALSYM COD_SERVICE_AUDIO}
  438. COD_SERVICE_TELEPHONY = $0200;
  439. {$EXTERNALSYM COD_SERVICE_TELEPHONY}
  440. COD_SERVICE_INFORMATION = $0400;
  441. {$EXTERNALSYM COD_SERVICE_INFORMATION}
  442. COD_SERVICE_VALID_MASK = COD_SERVICE_LIMITED or COD_SERVICE_POSITIONING or
  443. COD_SERVICE_NETWORKING or COD_SERVICE_RENDERING or
  444. COD_SERVICE_CAPTURING or COD_SERVICE_OBJECT_XFER or
  445. COD_SERVICE_AUDIO or COD_SERVICE_TELEPHONY or
  446. COD_SERVICE_INFORMATION;
  447. {$EXTERNALSYM COD_SERVICE_VALID_MASK}
  448. COD_SERVICE_MAX_COUNT = 9;
  449. {$EXTERNALSYM COD_SERVICE_MAX_COUNT}
  450. //
  451. // Major class codes
  452. //
  453. const
  454. COD_MAJOR_MISCELLANEOUS = $00;
  455. {$EXTERNALSYM COD_MAJOR_MISCELLANEOUS}
  456. COD_MAJOR_COMPUTER = $01;
  457. {$EXTERNALSYM COD_MAJOR_COMPUTER}
  458. COD_MAJOR_PHONE = $02;
  459. {$EXTERNALSYM COD_MAJOR_PHONE}
  460. COD_MAJOR_LAN_ACCESS = $03;
  461. {$EXTERNALSYM COD_MAJOR_LAN_ACCESS}
  462. COD_MAJOR_AUDIO = $04;
  463. {$EXTERNALSYM COD_MAJOR_AUDIO}
  464. COD_MAJOR_PERIPHERAL = $05;
  465. {$EXTERNALSYM COD_MAJOR_PERIPHERAL}
  466. COD_MAJOR_IMAGING = $06;
  467. {$EXTERNALSYM COD_MAJOR_IMAGING}
  468. COD_MAJOR_UNCLASSIFIED = $1;
  469. {$EXTERNALSYM COD_MAJOR_UNCLASSIFIED}
  470. //
  471. // Minor class codes specific to each major class
  472. //
  473. const
  474. COD_COMPUTER_MINOR_UNCLASSIFIED = $00;
  475. {$EXTERNALSYM COD_COMPUTER_MINOR_UNCLASSIFIED}
  476. COD_COMPUTER_MINOR_DESKTOP = $01;
  477. {$EXTERNALSYM COD_COMPUTER_MINOR_DESKTOP}
  478. COD_COMPUTER_MINOR_SERVER = $02;
  479. {$EXTERNALSYM COD_COMPUTER_MINOR_SERVER}
  480. COD_COMPUTER_MINOR_LAPTOP = $03;
  481. {$EXTERNALSYM COD_COMPUTER_MINOR_LAPTOP}
  482. COD_COMPUTER_MINOR_HANDHELD = $04;
  483. {$EXTERNALSYM COD_COMPUTER_MINOR_HANDHELD}
  484. COD_COMPUTER_MINOR_PALM = $05;
  485. {$EXTERNALSYM COD_COMPUTER_MINOR_PALM}
  486. COD_COMPUTER_MINOR_WEARABLE = $06;
  487. {$EXTERNALSYM COD_COMPUTER_MINOR_WEARABLE}
  488. COD_PHONE_MINOR_UNCLASSIFIED = $00;
  489. {$EXTERNALSYM COD_PHONE_MINOR_UNCLASSIFIED}
  490. COD_PHONE_MINOR_CELLULAR = $01;
  491. {$EXTERNALSYM COD_PHONE_MINOR_CELLULAR}
  492. COD_PHONE_MINOR_CORDLESS = $02;
  493. {$EXTERNALSYM COD_PHONE_MINOR_CORDLESS}
  494. COD_PHONE_MINOR_SMART = $03;
  495. {$EXTERNALSYM COD_PHONE_MINOR_SMART}
  496. COD_PHONE_MINOR_WIRED_MODEM = $04;
  497. {$EXTERNALSYM COD_PHONE_MINOR_WIRED_MODEM}
  498. COD_AUDIO_MINOR_UNCLASSIFIED = $00;
  499. {$EXTERNALSYM COD_AUDIO_MINOR_UNCLASSIFIED}
  500. COD_AUDIO_MINOR_HEADSET = $01;
  501. {$EXTERNALSYM COD_AUDIO_MINOR_HEADSET}
  502. COD_AUDIO_MINOR_HANDS_FREE = $02;
  503. {$EXTERNALSYM COD_AUDIO_MINOR_HANDS_FREE}
  504. COD_AUDIO_MINOR_HEADSET_HANDS_FREE = $03;
  505. {$EXTERNALSYM COD_AUDIO_MINOR_HEADSET_HANDS_FREE}
  506. COD_AUDIO_MINOR_MICROPHONE = $0;
  507. {$EXTERNALSYM COD_AUDIO_MINOR_MICROPHONE}
  508. COD_AUDIO_MINOR_LOUDSPEAKER = $05;
  509. {$EXTERNALSYM COD_AUDIO_MINOR_LOUDSPEAKER}
  510. COD_AUDIO_MINOR_HEADPHONES = $06;
  511. {$EXTERNALSYM COD_AUDIO_MINOR_HEADPHONES}
  512. COD_AUDIO_MINOR_PORTABLE_AUDIO = $07;
  513. {$EXTERNALSYM COD_AUDIO_MINOR_PORTABLE_AUDIO}
  514. COD_AUDIO_MINOR_CAR_AUDIO = $08;
  515. {$EXTERNALSYM COD_AUDIO_MINOR_CAR_AUDIO}
  516. COD_AUDIO_MINOR_SET_TOP_BOX = $09;
  517. {$EXTERNALSYM COD_AUDIO_MINOR_SET_TOP_BOX}
  518. COD_AUDIO_MINOR_HIFI_AUDIO = $0A;
  519. {$EXTERNALSYM COD_AUDIO_MINOR_HIFI_AUDIO}
  520. COD_AUDIO_MINOR_VCR = $0B;
  521. {$EXTERNALSYM COD_AUDIO_MINOR_VCR}
  522. COD_AUDIO_MINOR_VIDEO_CAMERA = $0C;
  523. {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_CAMERA}
  524. COD_AUDIO_MINOR_CAMCORDER = $0D;
  525. {$EXTERNALSYM COD_AUDIO_MINOR_CAMCORDER}
  526. COD_AUDIO_MINOR_VIDEO_MONITOR = $0E;
  527. {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_MONITOR}
  528. COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER = $0F;
  529. {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER}
  530. COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING = $10;
  531. {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING}
  532. //COD_AUDIO_MINOR_RESERVED = $11:
  533. COD_AUDIO_MINOR_GAMING_TOY = $12;
  534. {$EXTERNALSYM COD_AUDIO_MINOR_GAMING_TOY}
  535. COD_PERIPHERAL_MINOR_KEYBOARD_MASK = $10;
  536. {$EXTERNALSYM COD_PERIPHERAL_MINOR_KEYBOARD_MASK}
  537. COD_PERIPHERAL_MINOR_POINTER_MASK = $20;
  538. {$EXTERNALSYM COD_PERIPHERAL_MINOR_POINTER_MASK}
  539. COD_PERIPHERAL_MINOR_NO_CATEGORY = $00;
  540. {$EXTERNALSYM COD_PERIPHERAL_MINOR_NO_CATEGORY}
  541. COD_PERIPHERAL_MINOR_JOYSTICK = $01;
  542. {$EXTERNALSYM COD_PERIPHERAL_MINOR_JOYSTICK}
  543. COD_PERIPHERAL_MINOR_GAMEPAD = $02;
  544. {$EXTERNALSYM COD_PERIPHERAL_MINOR_GAMEPAD}
  545. COD_PERIPHERAL_MINOR_REMOTE_CONTROL = $03;
  546. {$EXTERNALSYM COD_PERIPHERAL_MINOR_REMOTE_CONTROL}
  547. COD_PERIPHERAL_MINOR_SENSING = $04;
  548. {$EXTERNALSYM COD_PERIPHERAL_MINOR_SENSING}
  549. COD_IMAGING_MINOR_DISPLAY_MASK = $04;
  550. {$EXTERNALSYM COD_IMAGING_MINOR_DISPLAY_MASK}
  551. COD_IMAGING_MINOR_CAMERA_MASK = $08;
  552. {$EXTERNALSYM COD_IMAGING_MINOR_CAMERA_MASK}
  553. COD_IMAGING_MINOR_SCANNER_MASK = $10;
  554. {$EXTERNALSYM COD_IMAGING_MINOR_SCANNER_MASK}
  555. COD_IMAGING_MINOR_PRINTER_MASK = $20;
  556. {$EXTERNALSYM COD_IMAGING_MINOR_PRINTER_MASK}
  557. //
  558. // Cannot use GET_COD_MINOR for this b/c it is embedded in a different manner
  559. // than the rest of the major classes
  560. //
  561. const
  562. COD_LAN_ACCESS_BIT_OFFSET = 5;
  563. {$EXTERNALSYM COD_LAN_ACCESS_BIT_OFFSET}
  564. COD_LAN_MINOR_MASK = $00001C;
  565. {$EXTERNALSYM COD_LAN_MINOR_MASK}
  566. COD_LAN_ACCESS_MASK = $0000E0;
  567. {$EXTERNALSYM COD_LAN_ACCESS_MASK}
  568. function GET_COD_LAN_MINOR(_cod: DWORD): DWORD;
  569. {$EXTERNALSYM GET_COD_LAN_MINOR}
  570. function GET_COD_LAN_ACCESS(_cod: DWORD): DWORD;
  571. {$EXTERNALSYM GET_COD_LAN_ACCESS}
  572. //
  573. // LAN access percent usage subcodes
  574. //
  575. const
  576. COD_LAN_MINOR_UNCLASSIFIED = $00;
  577. {$EXTERNALSYM COD_LAN_MINOR_UNCLASSIFIED}
  578. COD_LAN_ACCESS_0_USED = $00;
  579. {$EXTERNALSYM COD_LAN_ACCESS_0_USED}
  580. COD_LAN_ACCESS_17_USED = $01;
  581. {$EXTERNALSYM COD_LAN_ACCESS_17_USED}
  582. COD_LAN_ACCESS_33_USED = $02;
  583. {$EXTERNALSYM COD_LAN_ACCESS_33_USED}
  584. COD_LAN_ACCESS_50_USED = $03;
  585. {$EXTERNALSYM COD_LAN_ACCESS_50_USED}
  586. COD_LAN_ACCESS_67_USED = $04;
  587. {$EXTERNALSYM COD_LAN_ACCESS_67_USED}
  588. COD_LAN_ACCESS_83_USED = $05;
  589. {$EXTERNALSYM COD_LAN_ACCESS_83_USED}
  590. COD_LAN_ACCESS_99_USED = $06;
  591. {$EXTERNALSYM COD_LAN_ACCESS_99_USED}
  592. COD_LAN_ACCESS_FULL = $07;
  593. {$EXTERNALSYM COD_LAN_ACCESS_FULL}
  594. //
  595. // Used as an initializer of LAP_DATA
  596. //
  597. (* (rom) not implementable in Delphi
  598. #define LAP_GIAC_INIT { 0x33, 0x8B, 0x9E }
  599. #define LAP_LIAC_INIT { 0x00, 0x8B, 0x9E }
  600. *)
  601. //
  602. // General Inquiry Access Code.
  603. //
  604. const
  605. LAP_GIAC_VALUE = $009E8B33;
  606. {$EXTERNALSYM LAP_GIAC_VALUE}
  607. //
  608. // Limited Inquiry Access Code.
  609. //
  610. const
  611. LAP_LIAC_VALUE = $009E8B00;
  612. {$EXTERNALSYM LAP_LIAC_VALUE}
  613. BTH_ADDR_IAC_FIRST = $9E8B00;
  614. {$EXTERNALSYM BTH_ADDR_IAC_FIRST}
  615. BTH_ADDR_IAC_LAST = $9E8B3;
  616. {$EXTERNALSYM BTH_ADDR_IAC_LAST}
  617. BTH_ADDR_LIAC = $9E8B00;
  618. {$EXTERNALSYM BTH_ADDR_LIAC}
  619. BTH_ADDR_GIAC = $9E8B33;
  620. {$EXTERNALSYM BTH_ADDR_GIAC}
  621. type
  622. BTHSTATUS = UCHAR;
  623. {$EXTERNALSYM BTHSTATUS}
  624. PBTHSTATUS = ^BTHSTATUS;
  625. {$EXTERNALSYM PBTHSTATUS}
  626. function BTH_ERROR(_btStatus: BTHSTATUS): BOOL;
  627. {$EXTERNALSYM BTH_ERROR}
  628. function BTH_SUCCESS(_btStatus: BTHSTATUS): BOOL;
  629. {$EXTERNALSYM BTH_SUCCESS}
  630. const
  631. BTH_ERROR_SUCCESS = $00;
  632. {$EXTERNALSYM BTH_ERROR_SUCCESS}
  633. BTH_ERROR_UNKNOWN_HCI_COMMAND = $01;
  634. {$EXTERNALSYM BTH_ERROR_UNKNOWN_HCI_COMMAND}
  635. BTH_ERROR_NO_CONNECTION = $02;
  636. {$EXTERNALSYM BTH_ERROR_NO_CONNECTION}
  637. BTH_ERROR_HARDWARE_FAILURE = $03;
  638. {$EXTERNALSYM BTH_ERROR_HARDWARE_FAILURE}
  639. BTH_ERROR_PAGE_TIMEOUT = $04;
  640. {$EXTERNALSYM BTH_ERROR_PAGE_TIMEOUT}
  641. BTH_ERROR_AUTHENTICATION_FAILURE = $05;
  642. {$EXTERNALSYM BTH_ERROR_AUTHENTICATION_FAILURE}
  643. BTH_ERROR_KEY_MISSING = $06;
  644. {$EXTERNALSYM BTH_ERROR_KEY_MISSING}
  645. BTH_ERROR_MEMORY_FULL = $07;
  646. {$EXTERNALSYM BTH_ERROR_MEMORY_FULL}
  647. BTH_ERROR_CONNECTION_TIMEOUT = $08;
  648. {$EXTERNALSYM BTH_ERROR_CONNECTION_TIMEOUT}
  649. BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS = $09;
  650. {$EXTERNALSYM BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS}
  651. BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS = $0a;
  652. {$EXTERNALSYM BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS}
  653. BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS = $0b;
  654. {$EXTERNALSYM BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS}
  655. BTH_ERROR_COMMAND_DISALLOWED = $0c;
  656. {$EXTERNALSYM BTH_ERROR_COMMAND_DISALLOWED}
  657. BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES = $0d;
  658. {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES}
  659. BTH_ERROR_HOST_REJECTED_SECURITY_REASONS = $0e;
  660. {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_SECURITY_REASONS}
  661. BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE = $0;
  662. {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE}
  663. BTH_ERROR_HOST_TIMEOUT = $10;
  664. {$EXTERNALSYM BTH_ERROR_HOST_TIMEOUT}
  665. BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER = $11;
  666. {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER}
  667. BTH_ERROR_INVALID_HCI_PARAMETER = $12;
  668. {$EXTERNALSYM BTH_ERROR_INVALID_HCI_PARAMETER}
  669. BTH_ERROR_REMOTE_USER_ENDED_CONNECTION = $13;
  670. {$EXTERNALSYM BTH_ERROR_REMOTE_USER_ENDED_CONNECTION}
  671. BTH_ERROR_REMOTE_LOW_RESOURCES = $14;
  672. {$EXTERNALSYM BTH_ERROR_REMOTE_LOW_RESOURCES}
  673. BTH_ERROR_REMOTE_POWERING_OFF = $15;
  674. {$EXTERNALSYM BTH_ERROR_REMOTE_POWERING_OFF}
  675. BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION = $16;
  676. {$EXTERNALSYM BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION}
  677. BTH_ERROR_REPEATED_ATTEMPTS = $17;
  678. {$EXTERNALSYM BTH_ERROR_REPEATED_ATTEMPTS}
  679. BTH_ERROR_PAIRING_NOT_ALLOWED = $18;
  680. {$EXTERNALSYM BTH_ERROR_PAIRING_NOT_ALLOWED}
  681. BTH_ERROR_UKNOWN_LMP_PDU = $19;
  682. {$EXTERNALSYM BTH_ERROR_UKNOWN_LMP_PDU}
  683. BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE = $1a;
  684. {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE}
  685. BTH_ERROR_SCO_OFFSET_REJECTED = $1b;
  686. {$EXTERNALSYM BTH_ERROR_SCO_OFFSET_REJECTED}
  687. BTH_ERROR_SCO_INTERVAL_REJECTED = $1c;
  688. {$EXTERNALSYM BTH_ERROR_SCO_INTERVAL_REJECTED}
  689. BTH_ERROR_SCO_AIRMODE_REJECTED = $1d;
  690. {$EXTERNALSYM BTH_ERROR_SCO_AIRMODE_REJECTED}
  691. BTH_ERROR_INVALID_LMP_PARAMETERS = $1e;
  692. {$EXTERNALSYM BTH_ERROR_INVALID_LMP_PARAMETERS}
  693. BTH_ERROR_UNSPECIFIED_ERROR = $1;
  694. {$EXTERNALSYM BTH_ERROR_UNSPECIFIED_ERROR}
  695. BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE = $20;
  696. {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE}
  697. BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED = $21;
  698. {$EXTERNALSYM BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED}
  699. BTH_ERROR_LMP_RESPONSE_TIMEOUT = $22;
  700. {$EXTERNALSYM BTH_ERROR_LMP_RESPONSE_TIMEOUT}
  701. BTH_ERROR_LMP_TRANSACTION_COLLISION = $23;
  702. {$EXTERNALSYM BTH_ERROR_LMP_TRANSACTION_COLLISION}
  703. BTH_ERROR_LMP_PDU_NOT_ALLOWED = $24;
  704. {$EXTERNALSYM BTH_ERROR_LMP_PDU_NOT_ALLOWED}
  705. BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE = $25;
  706. {$EXTERNALSYM BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE}
  707. BTH_ERROR_UNIT_KEY_NOT_USED = $26;
  708. {$EXTERNALSYM BTH_ERROR_UNIT_KEY_NOT_USED}
  709. BTH_ERROR_QOS_IS_NOT_SUPPORTED = $27;
  710. {$EXTERNALSYM BTH_ERROR_QOS_IS_NOT_SUPPORTED}
  711. BTH_ERROR_INSTANT_PASSED = $28;
  712. {$EXTERNALSYM BTH_ERROR_INSTANT_PASSED}
  713. BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = $29;
  714. {$EXTERNALSYM BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED}
  715. BTH_ERROR_UNSPECIFIED = $FF;
  716. {$EXTERNALSYM BTH_ERROR_UNSPECIFIED}
  717. //
  718. // Min, max, and default L2cap MTU.
  719. //
  720. const
  721. L2CAP_MIN_MTU = 48;
  722. {$EXTERNALSYM L2CAP_MIN_MTU}
  723. L2CAP_MAX_MTU = $FFFF;
  724. {$EXTERNALSYM L2CAP_MAX_MTU}
  725. L2CAP_DEFAULT_MTU = 672;
  726. {$EXTERNALSYM L2CAP_DEFAULT_MTU}
  727. //
  728. // Max l2cap signal size (48) - size of signal header (4)
  729. //
  730. const
  731. MAX_L2CAP_PING_DATA_LENGTH = 44;
  732. {$EXTERNALSYM MAX_L2CAP_PING_DATA_LENGTH}
  733. MAX_L2CAP_INFO_DATA_LENGTH = 44;
  734. {$EXTERNALSYM MAX_L2CAP_INFO_DATA_LENGTH}
  735. //
  736. // the following two structures provides information about
  737. // disocvered remote radios.
  738. //
  739. const
  740. BDIF_ADDRESS = $00000001;
  741. {$EXTERNALSYM BDIF_ADDRESS}
  742. BDIF_COD = $00000002;
  743. {$EXTERNALSYM BDIF_COD}
  744. BDIF_NAME = $00000004;
  745. {$EXTERNALSYM BDIF_NAME}
  746. BDIF_PAIRED = $00000008;
  747. {$EXTERNALSYM BDIF_PAIRED}
  748. BDIF_PERSONAL = $00000010;
  749. {$EXTERNALSYM BDIF_PERSONAL}
  750. BDIF_CONNECTED = $00000020;
  751. {$EXTERNALSYM BDIF_CONNECTED}
  752. const
  753. BDIF_VALID_FLAGS = BDIF_CONNECTED or BDIF_ADDRESS or BDIF_COD or BDIF_NAME or BDIF_PAIRED or BDIF_PERSONAL;
  754. {$EXTERNALSYM BDIF_VALID_FLAGS}
  755. type
  756. _BTH_DEVICE_INFO = record
  757. //
  758. // Combination BDIF_Xxx flags
  759. //
  760. flags: ULONG;
  761. //
  762. // Address of remote device.
  763. //
  764. address: BTH_ADDR;
  765. //
  766. // Class Of Device.
  767. //
  768. classOfDevice: BTH_COD;
  769. //
  770. // name of the device
  771. //
  772. name: array [0..BTH_MAX_NAME_SIZE - 1] of CHAR;
  773. end;
  774. {$EXTERNALSYM _BTH_DEVICE_INFO}
  775. BTH_DEVICE_INFO = _BTH_DEVICE_INFO;
  776. {$EXTERNALSYM BTH_DEVICE_INFO}
  777. PBTH_DEVICE_INFO = ^BTH_DEVICE_INFO;
  778. {$EXTERNALSYM PBTH_DEVICE_INFO}
  779. TBthDeviceInfo = BTH_DEVICE_INFO;
  780. PBthDeviceInfo = PBTH_DEVICE_INFO;
  781. //
  782. // Buffer associated with GUID_BLUETOOTH_RADIO_IN_RANGE
  783. //
  784. type
  785. _BTH_RADIO_IN_RANGE = record
  786. //
  787. // Information about the remote radio
  788. //
  789. deviceInfo: BTH_DEVICE_INFO;
  790. //
  791. // The previous flags value for the BTH_DEVICE_INFO. The receiver of this
  792. // notification can compare the deviceInfo.flags and previousDeviceFlags
  793. // to determine what has changed about this remote radio.
  794. //
  795. // For instance, if BDIF_NAME is set in deviceInfo.flags and not in
  796. // previousDeviceFlags, the remote radio's has just been retrieved.
  797. //
  798. previousDeviceFlags: ULONG;
  799. end;
  800. {$EXTERNALSYM _BTH_RADIO_IN_RANGE}
  801. BTH_RADIO_IN_RANGE = _BTH_RADIO_IN_RANGE;
  802. {$EXTERNALSYM BTH_RADIO_IN_RANGE}
  803. PBTH_RADIO_IN_RANGE = ^BTH_RADIO_IN_RANGE;
  804. {$EXTERNALSYM PBTH_RADIO_IN_RANGE}
  805. TBthRadioInRange = BTH_RADIO_IN_RANGE;
  806. PBthRadioInRange = PBTH_RADIO_IN_RANGE;
  807. //
  808. // Buffer associated with GUID_BLUETOOTH_L2CAP_EVENT
  809. //
  810. _BTH_L2CAP_EVENT_INFO = record
  811. //
  812. // Remote radio address which the L2CAP event is associated with
  813. //
  814. bthAddress: BTH_ADDR;
  815. //
  816. // The PSM that is either being connected to or disconnected from
  817. //
  818. psm: Word;
  819. //
  820. // If != 0, then the channel has just been established. If == 0, then the
  821. // channel has been destroyed. Notifications for a destroyed channel will
  822. // only be sent for channels successfully established.
  823. //
  824. connected: UCHAR;
  825. //
  826. // If != 0, then the local host iniated the l2cap connection. If == 0, then
  827. // the remote host initated the connection. This field is only valid if
  828. // connect is != 0.
  829. //
  830. initiated: UCHAR;
  831. end;
  832. {$EXTERNALSYM _BTH_L2CAP_EVENT_INFO}
  833. BTH_L2CAP_EVENT_INFO = _BTH_L2CAP_EVENT_INFO;
  834. {$EXTERNALSYM BTH_L2CAP_EVENT_INFO}
  835. PBTH_L2CAP_EVENT_INFO = ^BTH_L2CAP_EVENT_INFO;
  836. {$EXTERNALSYM PBTH_L2CAP_EVENT_INFO}
  837. TBthL2CapEventInfo = BTH_L2CAP_EVENT_INFO;
  838. PBthL2CapEventInfo = PBTH_L2CAP_EVENT_INFO;
  839. const
  840. HCI_CONNNECTION_TYPE_ACL = 1;
  841. {$EXTERNALSYM HCI_CONNNECTION_TYPE_ACL}
  842. HCI_CONNNECTION_TYPE_SCO = 2;
  843. {$EXTERNALSYM HCI_CONNNECTION_TYPE_SCO}
  844. //
  845. // Buffer associated with GUID_BLUETOOTH_HCI_EVENT
  846. //
  847. type
  848. _BTH_HCI_EVENT_INFO = record
  849. //
  850. // Remote radio address which the HCI event is associated with
  851. //
  852. bthAddress: BTH_ADDR;
  853. //
  854. // HCI_CONNNECTION_TYPE_XXX value
  855. //
  856. connectionType: UCHAR;
  857. //
  858. // If != 0, then the underlying connection to the remote radio has just
  859. // been estrablished. If == 0, then the underlying conneciton has just been
  860. // destroyed.
  861. //
  862. connected: UCHAR;
  863. end;
  864. {$EXTERNALSYM _BTH_HCI_EVENT_INFO}
  865. BTH_HCI_EVENT_INFO = _BTH_HCI_EVENT_INFO;
  866. {$EXTERNALSYM BTH_HCI_EVENT_INFO}
  867. PBTH_HCI_EVENT_INFO = ^BTH_HCI_EVENT_INFO;
  868. {$EXTERNALSYM PBTH_HCI_EVENT_INFO}
  869. TBthHciEventInfo = BTH_HCI_EVENT_INFO;
  870. PBthHciEventInfo = PBTH_HCI_EVENT_INFO;
  871. const
  872. MAX_UUIDS_IN_QUERY = 12;
  873. {$EXTERNALSYM MAX_UUIDS_IN_QUERY}
  874. BTH_VID_DEFAULT_VALUE = $FFFF;
  875. {$EXTERNALSYM BTH_VID_DEFAULT_VALUE}
  876. SDP_ERROR_INVALID_SDP_VERSION = $0001;
  877. {$EXTERNALSYM SDP_ERROR_INVALID_SDP_VERSION}
  878. SDP_ERROR_INVALID_RECORD_HANDLE = $0002;
  879. {$EXTERNALSYM SDP_ERROR_INVALID_RECORD_HANDLE}
  880. SDP_ERROR_INVALID_REQUEST_SYNTAX = $0003;
  881. {$EXTERNALSYM SDP_ERROR_INVALID_REQUEST_SYNTAX}
  882. SDP_ERROR_INVALID_PDU_SIZE = $0004;
  883. {$EXTERNALSYM SDP_ERROR_INVALID_PDU_SIZE}
  884. SDP_ERROR_INVALID_CONTINUATION_STATE = $0005;
  885. {$EXTERNALSYM SDP_ERROR_INVALID_CONTINUATION_STATE}
  886. SDP_ERROR_INSUFFICIENT_RESOURCES = $0006;
  887. {$EXTERNALSYM SDP_ERROR_INSUFFICIENT_RESOURCES}
  888. //
  889. // Defined by windows to handle server errors that are not described by the
  890. // above errors. Start at 0x0100 so we don't go anywhere near the spec
  891. // defined values.
  892. //
  893. //
  894. // Success, nothing went wrong
  895. //
  896. const
  897. SDP_ERROR_SUCCESS = SDP_ERROR($0000);
  898. {$EXTERNALSYM SDP_ERROR_SUCCESS}
  899. //
  900. // The SDP PDU or parameters other than the SDP stream response was not correct
  901. //
  902. SDP_ERROR_SERVER_INVALID_RESPONSE = SDP_ERROR($0100);
  903. {$EXTERNALSYM SDP_ERROR_SERVER_INVALID_RESPONSE}
  904. ///
  905. /// The SDP response stream did not parse correctly.
  906. ///
  907. SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE = SDP_ERROR($0200);
  908. {$EXTERNALSYM SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE}
  909. ///
  910. /// The SDP response stream was successfully parsed, but did not match the
  911. /// required format for the query.
  912. ///
  913. SDP_ERROR_SERVER_BAD_FORMAT = SDP_ERROR($0300);
  914. {$EXTERNALSYM SDP_ERROR_SERVER_BAD_FORMAT}
  915. ///
  916. /// SDP was unable to send a continued query back to the server
  917. ///
  918. SDP_ERROR_COULD_NOT_SEND_CONTINUE = SDP_ERROR($0400);
  919. {$EXTERNALSYM SDP_ERROR_COULD_NOT_SEND_CONTINUE}
  920. ///
  921. /// Server sent a response that was too large to fit in the caller's buffer.
  922. ///
  923. SDP_ERROR_RESPONSE_TOO_LARGE = SDP_ERROR($0500);
  924. {$EXTERNALSYM SDP_ERROR_RESPONSE_TOO_LARGE}
  925. SDP_ATTRIB_RECORD_HANDLE = $0000;
  926. {$EXTERNALSYM SDP_ATTRIB_RECORD_HANDLE}
  927. SDP_ATTRIB_CLASS_ID_LIST = $0001;
  928. {$EXTERNALSYM SDP_ATTRIB_CLASS_ID_LIST}
  929. SDP_ATTRIB_RECORD_STATE = $0002;
  930. {$EXTERNALSYM SDP_ATTRIB_RECORD_STATE}
  931. SDP_ATTRIB_SERVICE_ID = $0003;
  932. {$EXTERNALSYM SDP_ATTRIB_SERVICE_ID}
  933. SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST = $0004;
  934. {$EXTERNALSYM SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST}
  935. SDP_ATTRIB_BROWSE_GROUP_LIST = $0005;
  936. {$EXTERNALSYM SDP_ATTRIB_BROWSE_GROUP_LIST}
  937. SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST = $0006;
  938. {$EXTERNALSYM SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST}
  939. SDP_ATTRIB_INFO_TIME_TO_LIVE = $0007;
  940. {$EXTERNALSYM SDP_ATTRIB_INFO_TIME_TO_LIVE}
  941. SDP_ATTRIB_AVAILABILITY = $0008;
  942. {$EXTERNALSYM SDP_ATTRIB_AVAILABILITY}
  943. SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST = $0009;
  944. {$EXTERNALSYM SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST}
  945. SDP_ATTRIB_DOCUMENTATION_URL = $000A;
  946. {$EXTERNALSYM SDP_ATTRIB_DOCUMENTATION_URL}
  947. SDP_ATTRIB_CLIENT_EXECUTABLE_URL = $000B;
  948. {$EXTERNALSYM SDP_ATTRIB_CLIENT_EXECUTABLE_URL}
  949. SDP_ATTRIB_ICON_URL = $000C;
  950. {$EXTERNALSYM SDP_ATTRIB_ICON_URL}
  951. SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST = $000D;
  952. {$EXTERNALSYM SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST}
  953. //
  954. // Attribute IDs in the range of 0x000D - 0x01FF are reserved for future use
  955. //
  956. const
  957. SDP_ATTRIB_PROFILE_SPECIFIC = $0200;
  958. {$EXTERNALSYM SDP_ATTRIB_PROFILE_SPECIFIC}
  959. LANG_BASE_LANGUAGE_INDEX = $0000;
  960. {$EXTERNALSYM LANG_BASE_LANGUAGE_INDEX}
  961. LANG_BASE_ENCODING_INDEX = $0001;
  962. {$EXTERNALSYM LANG_BASE_ENCODING_INDEX}
  963. LANG_BASE_OFFSET_INDEX = $0002;
  964. {$EXTERNALSYM LANG_BASE_OFFSET_INDEX}
  965. LANG_DEFAULT_ID = $0100;
  966. {$EXTERNALSYM LANG_DEFAULT_ID}
  967. STRING_NAME_OFFSET = $0000;
  968. {$EXTERNALSYM STRING_NAME_OFFSET}
  969. STRING_DESCRIPTION_OFFSET = $0001;
  970. {$EXTERNALSYM STRING_DESCRIPTION_OFFSET}
  971. STRING_PROVIDER_NAME_OFFSET = $0002;
  972. {$EXTERNALSYM STRING_PROVIDER_NAME_OFFSET}
  973. SDP_ATTRIB_SDP_VERSION_NUMBER_LIST = $0200;
  974. {$EXTERNALSYM SDP_ATTRIB_SDP_VERSION_NUMBER_LIST}
  975. SDP_ATTRIB_SDP_DATABASE_STATE = $0201;
  976. {$EXTERNALSYM SDP_ATTRIB_SDP_DATABASE_STATE}
  977. SDP_ATTRIB_BROWSE_GROUP_ID = $0200;
  978. {$EXTERNALSYM SDP_ATTRIB_BROWSE_GROUP_ID}
  979. SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK = $0301;
  980. {$EXTERNALSYM SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK}
  981. SDP_ATTRIB_FAX_CLASS_1_SUPPORT = $0302;
  982. {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_1_SUPPORT}
  983. SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT = $0303;
  984. {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT}
  985. SDP_ATTRIB_FAX_CLASS_2_SUPPORT = $0304;
  986. {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_2_SUPPORT}
  987. SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT = $0305;
  988. {$EXTERNALSYM SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT}
  989. SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL = $0302;
  990. {$EXTERNALSYM SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL}
  991. SDP_ATTRIB_LAN_LPSUBNET = $0200;
  992. {$EXTERNALSYM SDP_ATTRIB_LAN_LPSUBNET}
  993. SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST = $0303;
  994. {$EXTERNALSYM SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST}
  995. SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST = $0301;
  996. {$EXTERNALSYM SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST}
  997. // this is in the assigned numbers doc, but it does not show up in any profile
  998. const
  999. SDP_ATTRIB_SERVICE_VERSION = $0300;
  1000. {$EXTERNALSYM SDP_ATTRIB_SERVICE_VERSION}
  1001. SDP_ATTRIB_PAN_NETWORK_ADDRESS = $0306;
  1002. {$EXTERNALSYM SDP_ATTRIB_PAN_NETWORK_ADDRESS}
  1003. SDP_ATTRIB_PAN_WAP_GATEWAY = $0307;
  1004. {$EXTERNALSYM SDP_ATTRIB_PAN_WAP_GATEWAY}
  1005. SDP_ATTRIB_PAN_HOME_PAGE_URL = $0308;
  1006. {$EXTERNALSYM SDP_ATTRIB_PAN_HOME_PAGE_URL}
  1007. SDP_ATTRIB_PAN_WAP_STACK_TYPE = $0309;
  1008. {$EXTERNALSYM SDP_ATTRIB_PAN_WAP_STACK_TYPE}
  1009. SDP_ATTRIB_PAN_SECURITY_DESCRIPTION = $030A;
  1010. {$EXTERNALSYM SDP_ATTRIB_PAN_SECURITY_DESCRIPTION}
  1011. SDP_ATTRIB_PAN_NET_ACCESS_TYPE = $030B;
  1012. {$EXTERNALSYM SDP_ATTRIB_PAN_NET_ACCESS_TYPE}
  1013. SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE = $030C;
  1014. {$EXTERNALSYM SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE}
  1015. SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES = $0310;
  1016. {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES}
  1017. SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES = $0311;
  1018. {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES}
  1019. SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS = $0312;
  1020. {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS}
  1021. SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY = $0313;
  1022. {$EXTERNALSYM SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY}
  1023. SDP_ATTRIB_DI_SPECIFICATION_ID = $0200;
  1024. {$EXTERNALSYM SDP_ATTRIB_DI_SPECIFICATION_ID}
  1025. SDP_ATTRIB_DI_VENDOR_ID = $0201;
  1026. {$EXTERNALSYM SDP_ATTRIB_DI_VENDOR_ID}
  1027. SDP_ATTRIB_DI_PRODUCT_ID = $0202;
  1028. {$EXTERNALSYM SDP_ATTRIB_DI_PRODUCT_ID}
  1029. SDP_ATTRIB_DI_VERSION = $0203;
  1030. {$EXTERNALSYM SDP_ATTRIB_DI_VERSION}
  1031. SDP_ATTRIB_DI_PRIMARY_RECORD = $0204;
  1032. {$EXTERNALSYM SDP_ATTRIB_DI_PRIMARY_RECORD}
  1033. SDP_ATTRIB_DI_VENDOR_ID_SOURCE = $0205;
  1034. {$EXTERNALSYM SDP_ATTRIB_DI_VENDOR_ID_SOURCE}
  1035. SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER = $0200;
  1036. {$EXTERNALSYM SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER}
  1037. SDP_ATTRIB_HID_PARSER_VERSION = $0201;
  1038. {$EXTERNALSYM SDP_ATTRIB_HID_PARSER_VERSION}
  1039. SDP_ATTRIB_HID_DEVICE_SUBCLASS = $0202;
  1040. {$EXTERNALSYM SDP_ATTRIB_HID_DEVICE_SUBCLASS}
  1041. SDP_ATTRIB_HID_COUNTRY_CODE = $0203;
  1042. {$EXTERNALSYM SDP_ATTRIB_HID_COUNTRY_CODE}
  1043. SDP_ATTRIB_HID_VIRTUAL_CABLE = $0204;
  1044. {$EXTERNALSYM SDP_ATTRIB_HID_VIRTUAL_CABLE}
  1045. SDP_ATTRIB_HID_RECONNECT_INITIATE = $0205;
  1046. {$EXTERNALSYM SDP_ATTRIB_HID_RECONNECT_INITIATE}
  1047. SDP_ATTRIB_HID_DESCRIPTOR_LIST = $0206;
  1048. {$EXTERNALSYM SDP_ATTRIB_HID_DESCRIPTOR_LIST}
  1049. SDP_ATTRIB_HID_LANG_ID_BASE_LIST = $0207;
  1050. {$EXTERNALSYM SDP_ATTRIB_HID_LANG_ID_BASE_LIST}
  1051. SDP_ATTRIB_HID_SDP_DISABLE = $0208;
  1052. {$EXTERNALSYM SDP_ATTRIB_HID_SDP_DISABLE}
  1053. SDP_ATTRIB_HID_BATTERY_POWER = $0209;
  1054. {$EXTERNALSYM SDP_ATTRIB_HID_BATTERY_POWER}
  1055. SDP_ATTRIB_HID_REMOTE_WAKE = $020A;
  1056. {$EXTERNALSYM SDP_ATTRIB_HID_REMOTE_WAKE}
  1057. SDP_ATTRIB_HID_REPORT_LIST = $020B;
  1058. {$EXTERNALSYM SDP_ATTRIB_HID_REPORT_LIST}
  1059. SDP_ATTRIB_HID_SUPERVISION_TIMEOUT = $020C;
  1060. {$EXTERNALSYM SDP_ATTRIB_HID_SUPERVISION_TIMEOUT}
  1061. SDP_ATTRIB_HID_NORMALLY_CONNECTABLE = $020D;
  1062. {$EXTERNALSYM SDP_ATTRIB_HID_NORMALLY_CONNECTABLE}
  1063. SDP_ATTRIB_HID_BOOT_DEVICE = $020E;
  1064. {$EXTERNALSYM SDP_ATTRIB_HID_BOOT_DEVICE}
  1065. //
  1066. // Profile specific values
  1067. //
  1068. CORDLESS_EXTERNAL_NETWORK_PSTN = $01;
  1069. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_PSTN}
  1070. CORDLESS_EXTERNAL_NETWORK_ISDN = $02;
  1071. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_ISDN}
  1072. CORDLESS_EXTERNAL_NETWORK_GSM = $03;
  1073. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_GSM}
  1074. CORDLESS_EXTERNAL_NETWORK_CDMA = $04;
  1075. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_CDMA}
  1076. CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR = $05;
  1077. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR}
  1078. CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED = $06;
  1079. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED}
  1080. CORDLESS_EXTERNAL_NETWORK_OTHER = $07;
  1081. {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_OTHER}
  1082. OBJECT_PUSH_FORMAT_VCARD_2_1 = $01;
  1083. {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCARD_2_1}
  1084. OBJECT_PUSH_FORMAT_VCARD_3_0 = $02;
  1085. {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCARD_3_0}
  1086. OBJECT_PUSH_FORMAT_VCAL_1_0 = $03;
  1087. {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCAL_1_0}
  1088. OBJECT_PUSH_FORMAT_ICAL_2_0 = $04;
  1089. {$EXTERNALSYM OBJECT_PUSH_FORMAT_ICAL_2_0}
  1090. OBJECT_PUSH_FORMAT_VNOTE = $05;
  1091. {$EXTERNALSYM OBJECT_PUSH_FORMAT_VNOTE}
  1092. OBJECT_PUSH_FORMAT_VMESSAGE = $06;
  1093. {$EXTERNALSYM OBJECT_PUSH_FORMAT_VMESSAGE}
  1094. OBJECT_PUSH_FORMAT_ANY = $FF;
  1095. {$EXTERNALSYM OBJECT_PUSH_FORMAT_ANY}
  1096. SYNCH_DATA_STORE_PHONEBOOK = $01;
  1097. {$EXTERNALSYM SYNCH_DATA_STORE_PHONEBOOK}
  1098. SYNCH_DATA_STORE_CALENDAR = $03;
  1099. {$EXTERNALSYM SYNCH_DATA_STORE_CALENDAR}
  1100. SYNCH_DATA_STORE_NOTES = $05;
  1101. {$EXTERNALSYM SYNCH_DATA_STORE_NOTES}
  1102. SYNCH_DATA_STORE_MESSAGES = $06;
  1103. {$EXTERNALSYM SYNCH_DATA_STORE_MESSAGES}
  1104. DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG = $0001;
  1105. {$EXTERNALSYM DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG}
  1106. DI_VENDOR_ID_SOURCE_USB_IF = $0002;
  1107. {$EXTERNALSYM DI_VENDOR_ID_SOURCE_USB_IF}
  1108. PSM_SDP = $0001;
  1109. {$EXTERNALSYM PSM_SDP}
  1110. PSM_RFCOMM = $0003;
  1111. {$EXTERNALSYM PSM_RFCOMM}
  1112. PSM_TCS_BIN = $0005;
  1113. {$EXTERNALSYM PSM_TCS_BIN}
  1114. PSM_TCS_BIN_CORDLESS = $0007;
  1115. {$EXTERNALSYM PSM_TCS_BIN_CORDLESS}
  1116. PSM_BNEP = $000;
  1117. {$EXTERNALSYM PSM_BNEP}
  1118. PSM_HID_CONTROL = $0011;
  1119. {$EXTERNALSYM PSM_HID_CONTROL}
  1120. PSM_HID_INTERRUPT = $0013;
  1121. {$EXTERNALSYM PSM_HID_INTERRUPT}
  1122. PSM_AVCTP = $0017;
  1123. {$EXTERNALSYM PSM_AVCTP}
  1124. PSM_AVDTP = $0019;
  1125. {$EXTERNALSYM PSM_AVDTP}
  1126. PSM_UDI_C_PLANE = $001D;
  1127. {$EXTERNALSYM PSM_UDI_C_PLANE}
  1128. //
  1129. // Strings
  1130. //
  1131. const
  1132. STR_ADDR_FMTA = '(%02x:%02x:%02x:%02x:%02x:%02x)';
  1133. {$EXTERNALSYM STR_ADDR_FMTA}
  1134. STR_ADDR_FMTW = '(%02x:%02x:%02x:%02x:%02x:%02x)';
  1135. {$EXTERNALSYM STR_ADDR_FMTW}
  1136. STR_ADDR_SHORT_FMTA = '%04x%08x';
  1137. {$EXTERNALSYM STR_ADDR_SHORT_FMTA}
  1138. STR_ADDR_SHORT_FMTW = '%04x%08x';
  1139. {$EXTERNALSYM STR_ADDR_SHORT_FMTW}
  1140. {$IFDEF UNICODE}
  1141. STR_ADDR_FMT = STR_ADDR_FMTW;
  1142. {$EXTERNALSYM STR_ADDR_FMT}
  1143. STR_ADDR_SHORT_FMT = STR_ADDR_SHORT_FMTW;
  1144. {$EXTERNALSYM STR_ADDR_SHORT_FMT}
  1145. {$ELSE}
  1146. STR_ADDR_FMT = STR_ADDR_FMTA;
  1147. {$EXTERNALSYM STR_ADDR_FMT}
  1148. STR_ADDR_SHORT_FMT = STR_ADDR_SHORT_FMTA;
  1149. {$EXTERNALSYM STR_ADDR_SHORT_FMT}
  1150. {$ENDIF UNICODE}
  1151. function GET_BITS(Field, Offset, Mask: Integer): Integer;
  1152. {$EXTERNALSYM GET_BITS}
  1153. function GET_BIT(Field, Offset: Integer): Integer;
  1154. {$EXTERNALSYM GET_BIT}
  1155. function LMP_3_SLOT_PACKETS(X: Integer): Integer;
  1156. {$EXTERNALSYM LMP_3_SLOT_PACKETS}
  1157. function LMP_5_SLOT_PACKETS(X: Integer): Integer;
  1158. {$EXTERNALSYM LMP_5_SLOT_PACKETS}
  1159. function LMP_ENCRYPTION(X: Integer): Integer;
  1160. {$EXTERNALSYM LMP_ENCRYPTION}
  1161. function LMP_SLOT_OFFSET(X: Integer): Integer;
  1162. {$EXTERNALSYM LMP_SLOT_OFFSET}
  1163. function LMP_TIMING_ACCURACY(X: Integer): Integer;
  1164. {$EXTERNALSYM LMP_TIMING_ACCURACY}
  1165. function LMP_SWITCH(X: Integer): Integer;
  1166. {$EXTERNALSYM LMP_SWITCH}
  1167. function LMP_HOLD_MODE(X: Integer): Integer;
  1168. {$EXTERNALSYM LMP_HOLD_MODE}
  1169. function LMP_SNIFF_MODE(X: Integer): Integer;
  1170. {$EXTERNALSYM LMP_SNIFF_MODE}
  1171. function LMP_PARK_MODE(X: Integer): Integer;
  1172. {$EXTERNALSYM LMP_PARK_MODE}
  1173. function LMP_RSSI(X: Integer): Integer;
  1174. {$EXTERNALSYM LMP_RSSI}
  1175. function LMP_CHANNEL_QUALITY_DRIVEN_MODE(X: Integer): Integer;
  1176. {$EXTERNALSYM LMP_CHANNEL_QUALITY_DRIVEN_MODE}
  1177. function LMP_SCO_LINK(X: Integer): Integer;
  1178. {$EXTERNALSYM LMP_SCO_LINK}
  1179. function LMP_HV2_PACKETS(X: Integer): Integer;
  1180. {$EXTERNALSYM LMP_HV2_PACKETS}
  1181. function LMP_HV3_PACKETS(X: Integer): Integer;
  1182. {$EXTERNALSYM LMP_HV3_PACKETS}
  1183. function LMP_MU_LAW_LOG(X: Integer): Integer;
  1184. {$EXTERNALSYM LMP_MU_LAW_LOG}
  1185. function LMP_A_LAW_LOG(X: Integer): Integer;
  1186. {$EXTERNALSYM LMP_A_LAW_LOG}
  1187. function LMP_CVSD(X: Integer): Integer;
  1188. {$EXTERNALSYM LMP_CVSD}
  1189. function LMP_PAGING_SCHEME(X: Integer): Integer;
  1190. {$EXTERNALSYM LMP_PAGING_SCHEME}
  1191. function LMP_POWER_CONTROL(X: Integer): Integer;
  1192. {$EXTERNALSYM LMP_POWER_CONTROL}
  1193. function LMP_TRANSPARENT_SCO_DATA(X: Integer): Integer;
  1194. {$EXTERNALSYM LMP_TRANSPARENT_SCO_DATA}
  1195. function LMP_FLOW_CONTROL_LAG(X: Integer): Integer;
  1196. {$EXTERNALSYM LMP_FLOW_CONTROL_LAG}
  1197. implementation
  1198. function GET_NAP(_bth_addr: BTH_ADDR): Word;
  1199. begin
  1200. Result := ((_bth_addr and NAP_MASK) shr NAP_BIT_OFFSET);
  1201. end;
  1202. function GET_SAP(_bth_addr: BTH_ADDR): ULONG;
  1203. begin
  1204. Result := ((_bth_addr and SAP_MASK) shr SAP_BIT_OFFSET);
  1205. end;
  1206. function SET_NAP(_nap: Word): Int64;
  1207. begin
  1208. Result := (_nap shl NAP_BIT_OFFSET);
  1209. end;
  1210. function SET_SAP(_sap: ULONG): Int64;
  1211. begin
  1212. Result := (_sap shl SAP_BIT_OFFSET);
  1213. end;
  1214. function SET_NAP_SAP(_nap, _sap: Word): Int64;
  1215. begin
  1216. Result := (SET_NAP(_nap) or SET_SAP(_sap));
  1217. end;
  1218. function GET_COD_LAN_MINOR(_cod: DWORD): DWORD;
  1219. begin
  1220. Result := ((_cod and COD_LAN_MINOR_MASK) shr COD_MINOR_BIT_OFFSET);
  1221. end;
  1222. function GET_COD_LAN_ACCESS(_cod: DWORD): DWORD;
  1223. begin
  1224. Result := ((_cod and COD_LAN_ACCESS_MASK) shr COD_LAN_ACCESS_BIT_OFFSET);
  1225. end;
  1226. function BTH_ERROR(_btStatus: BTHSTATUS): BOOL;
  1227. begin
  1228. Result := _btStatus <> BTH_ERROR_SUCCESS;
  1229. end;
  1230. function BTH_SUCCESS(_btStatus: BTHSTATUS): BOOL;
  1231. begin
  1232. Result := _btStatus = BTH_ERROR_SUCCESS;
  1233. end;
  1234. function GET_BITS(Field, Offset, Mask: Integer): Integer;
  1235. begin
  1236. Result := (Field shr Offset) and Mask;
  1237. end;
  1238. function GET_BIT(field,offset: Integer): Integer;
  1239. begin
  1240. Result := GET_BITS(Field, Offset, $1);
  1241. end;
  1242. function LMP_3_SLOT_PACKETS(X: Integer): Integer;
  1243. begin
  1244. Result := GET_BIT(x, 0);
  1245. end;
  1246. function LMP_5_SLOT_PACKETS(X: Integer): Integer;
  1247. begin
  1248. Result := GET_BIT(x, 1);
  1249. end;
  1250. function LMP_ENCRYPTION(X: Integer): Integer;
  1251. begin
  1252. Result := GET_BIT(x, 2);
  1253. end;
  1254. function LMP_SLOT_OFFSET(X: Integer): Integer;
  1255. begin
  1256. Result := GET_BIT(x, 3);
  1257. end;
  1258. function LMP_TIMING_ACCURACY(X: Integer): Integer;
  1259. begin
  1260. Result := GET_BIT(x, 4);
  1261. end;
  1262. function LMP_SWITCH(X: Integer): Integer;
  1263. begin
  1264. Result := GET_BIT(x, 5);
  1265. end;
  1266. function LMP_HOLD_MODE(X: Integer): Integer;
  1267. begin
  1268. Result := GET_BIT(x, 6);
  1269. end;
  1270. function LMP_SNIFF_MODE(X: Integer): Integer;
  1271. begin
  1272. Result := GET_BIT(x, 7);
  1273. end;
  1274. function LMP_PARK_MODE(X: Integer): Integer;
  1275. begin
  1276. Result := GET_BIT(x, 8);
  1277. end;
  1278. function LMP_RSSI(X: Integer): Integer;
  1279. begin
  1280. Result := GET_BIT(x, 9);
  1281. end;
  1282. function LMP_CHANNEL_QUALITY_DRIVEN_MODE(X: Integer): Integer;
  1283. begin
  1284. Result := GET_BIT(x, 10);
  1285. end;
  1286. function LMP_SCO_LINK(X: Integer): Integer;
  1287. begin
  1288. Result := GET_BIT(x, 11);
  1289. end;
  1290. function LMP_HV2_PACKETS(X: Integer): Integer;
  1291. begin
  1292. Result := GET_BIT(x, 12);
  1293. end;
  1294. function LMP_HV3_PACKETS(X: Integer): Integer;
  1295. begin
  1296. Result := GET_BIT(x, 13);
  1297. end;
  1298. function LMP_MU_LAW_LOG(X: Integer): Integer;
  1299. begin
  1300. Result := GET_BIT(x, 14);
  1301. end;
  1302. function LMP_A_LAW_LOG(X: Integer): Integer;
  1303. begin
  1304. Result := GET_BIT(x, 15);
  1305. end;
  1306. function LMP_CVSD(X: Integer): Integer;
  1307. begin
  1308. Result := GET_BIT(x, 16);
  1309. end;
  1310. function LMP_PAGING_SCHEME(X: Integer): Integer;
  1311. begin
  1312. Result := GET_BIT(x, 17);
  1313. end;
  1314. function LMP_POWER_CONTROL(X: Integer): Integer;
  1315. begin
  1316. Result := GET_BIT(x, 18);
  1317. end;
  1318. function LMP_TRANSPARENT_SCO_DATA(X: Integer): Integer;
  1319. begin
  1320. Result := GET_BIT(x, 19);
  1321. end;
  1322. function LMP_FLOW_CONTROL_LAG(X: Integer): Integer;
  1323. begin
  1324. Result := GET_BITS(x, 20, $3);
  1325. end;
  1326. function GET_COD_FORMAT(_cod: BTH_COD): BTH_COD;
  1327. begin
  1328. Result := (_cod and COD_FORMAT_MASK) shr COD_FORMAT_BIT_OFFSET;
  1329. end;
  1330. function GET_COD_MINOR(_cod: BTH_COD): BTH_COD;
  1331. begin
  1332. Result := (_cod and COD_MINOR_MASK) shr COD_MINOR_BIT_OFFSET;
  1333. end;
  1334. function GET_COD_MAJOR(_cod: BTH_COD): BTH_COD;
  1335. begin
  1336. Result := (_cod and COD_MAJOR_MASK) shr COD_MAJOR_BIT_OFFSET;
  1337. end;
  1338. function GET_COD_SERVICE(_cod: BTH_COD): BTH_COD;
  1339. begin
  1340. Result := (_cod and COD_SERVICE_MASK) shr COD_SERVICE_BIT_OFFSET;
  1341. end;
  1342. procedure SET_COD_MINOR(var _cod: BTH_COD; _minor: BTH_COD);
  1343. begin
  1344. _cod := (_cod and not COD_MINOR_MASK) or (_minor shl COD_MINOR_BIT_OFFSET);
  1345. end;
  1346. procedure SET_COD_MAJOR(var _cod: BTH_COD; _major: BTH_COD);
  1347. begin
  1348. _cod := (_cod and not COD_MAJOR_MASK) or (_major shl COD_MAJOR_BIT_OFFSET);
  1349. end;
  1350. procedure SET_COD_SERVICE(var _cod: BTH_COD; _service: BTH_COD);
  1351. begin
  1352. _cod := (_cod and not COD_SERVICE_MASK) or (_service shl COD_SERVICE_BIT_OFFSET);
  1353. end;
  1354. end.