jwabthdef.pas 52 KB

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