CFStringEncodingExt.pas 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  1. { CFStringEncodingExt.h
  2. Copyright (c) 1998-2013, Apple Inc. All rights reserved.
  3. }
  4. {
  5. Modified for use with Free Pascal
  6. Version 308
  7. Please report any bugs to <[email protected]>
  8. }
  9. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  10. {$mode macpas}
  11. {$modeswitch cblocks}
  12. {$packenum 1}
  13. {$macro on}
  14. {$inline on}
  15. {$calling mwpascal}
  16. unit CFStringEncodingExt;
  17. interface
  18. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  19. {$setc GAP_INTERFACES_VERSION := $0308}
  20. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  21. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  22. {$endc}
  23. {$ifc defined CPUPOWERPC and defined CPUI386}
  24. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  25. {$endc}
  26. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  27. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  28. {$endc}
  29. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  30. {$setc __ppc__ := 1}
  31. {$elsec}
  32. {$setc __ppc__ := 0}
  33. {$endc}
  34. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  35. {$setc __ppc64__ := 1}
  36. {$elsec}
  37. {$setc __ppc64__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc not defined __x86_64__ and defined CPUX86_64}
  45. {$setc __x86_64__ := 1}
  46. {$elsec}
  47. {$setc __x86_64__ := 0}
  48. {$endc}
  49. {$ifc not defined __arm__ and defined CPUARM}
  50. {$setc __arm__ := 1}
  51. {$elsec}
  52. {$setc __arm__ := 0}
  53. {$endc}
  54. {$ifc not defined __arm64__ and defined CPUAARCH64}
  55. {$setc __arm64__ := 1}
  56. {$elsec}
  57. {$setc __arm64__ := 0}
  58. {$endc}
  59. {$ifc defined cpu64}
  60. {$setc __LP64__ := 1}
  61. {$elsec}
  62. {$setc __LP64__ := 0}
  63. {$endc}
  64. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  65. {$error Conflicting definitions for __ppc__ and __i386__}
  66. {$endc}
  67. {$ifc defined __ppc__ and __ppc__}
  68. {$setc TARGET_CPU_PPC := TRUE}
  69. {$setc TARGET_CPU_PPC64 := FALSE}
  70. {$setc TARGET_CPU_X86 := FALSE}
  71. {$setc TARGET_CPU_X86_64 := FALSE}
  72. {$setc TARGET_CPU_ARM := FALSE}
  73. {$setc TARGET_CPU_ARM64 := FALSE}
  74. {$setc TARGET_OS_MAC := TRUE}
  75. {$setc TARGET_OS_IPHONE := FALSE}
  76. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  77. {$setc TARGET_OS_EMBEDDED := FALSE}
  78. {$elifc defined __ppc64__ and __ppc64__}
  79. {$setc TARGET_CPU_PPC := FALSE}
  80. {$setc TARGET_CPU_PPC64 := TRUE}
  81. {$setc TARGET_CPU_X86 := FALSE}
  82. {$setc TARGET_CPU_X86_64 := FALSE}
  83. {$setc TARGET_CPU_ARM := FALSE}
  84. {$setc TARGET_CPU_ARM64 := FALSE}
  85. {$setc TARGET_OS_MAC := TRUE}
  86. {$setc TARGET_OS_IPHONE := FALSE}
  87. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  88. {$setc TARGET_OS_EMBEDDED := FALSE}
  89. {$elifc defined __i386__ and __i386__}
  90. {$setc TARGET_CPU_PPC := FALSE}
  91. {$setc TARGET_CPU_PPC64 := FALSE}
  92. {$setc TARGET_CPU_X86 := TRUE}
  93. {$setc TARGET_CPU_X86_64 := FALSE}
  94. {$setc TARGET_CPU_ARM := FALSE}
  95. {$setc TARGET_CPU_ARM64 := FALSE}
  96. {$ifc defined(iphonesim)}
  97. {$setc TARGET_OS_MAC := FALSE}
  98. {$setc TARGET_OS_IPHONE := TRUE}
  99. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  100. {$elsec}
  101. {$setc TARGET_OS_MAC := TRUE}
  102. {$setc TARGET_OS_IPHONE := FALSE}
  103. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  104. {$endc}
  105. {$setc TARGET_OS_EMBEDDED := FALSE}
  106. {$elifc defined __x86_64__ and __x86_64__}
  107. {$setc TARGET_CPU_PPC := FALSE}
  108. {$setc TARGET_CPU_PPC64 := FALSE}
  109. {$setc TARGET_CPU_X86 := FALSE}
  110. {$setc TARGET_CPU_X86_64 := TRUE}
  111. {$setc TARGET_CPU_ARM := FALSE}
  112. {$setc TARGET_CPU_ARM64 := FALSE}
  113. {$ifc defined(iphonesim)}
  114. {$setc TARGET_OS_MAC := FALSE}
  115. {$setc TARGET_OS_IPHONE := TRUE}
  116. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  117. {$elsec}
  118. {$setc TARGET_OS_MAC := TRUE}
  119. {$setc TARGET_OS_IPHONE := FALSE}
  120. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  121. {$endc}
  122. {$setc TARGET_OS_EMBEDDED := FALSE}
  123. {$elifc defined __arm__ and __arm__}
  124. {$setc TARGET_CPU_PPC := FALSE}
  125. {$setc TARGET_CPU_PPC64 := FALSE}
  126. {$setc TARGET_CPU_X86 := FALSE}
  127. {$setc TARGET_CPU_X86_64 := FALSE}
  128. {$setc TARGET_CPU_ARM := TRUE}
  129. {$setc TARGET_CPU_ARM64 := FALSE}
  130. { will require compiler define when/if other Apple devices with ARM cpus ship }
  131. {$setc TARGET_OS_MAC := FALSE}
  132. {$setc TARGET_OS_IPHONE := TRUE}
  133. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  134. {$setc TARGET_OS_EMBEDDED := TRUE}
  135. {$elifc defined __arm64__ and __arm64__}
  136. {$setc TARGET_CPU_PPC := FALSE}
  137. {$setc TARGET_CPU_PPC64 := FALSE}
  138. {$setc TARGET_CPU_X86 := FALSE}
  139. {$setc TARGET_CPU_X86_64 := FALSE}
  140. {$setc TARGET_CPU_ARM := FALSE}
  141. {$setc TARGET_CPU_ARM64 := TRUE}
  142. { will require compiler define when/if other Apple devices with ARM cpus ship }
  143. {$setc TARGET_OS_MAC := FALSE}
  144. {$setc TARGET_OS_IPHONE := TRUE}
  145. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  146. {$setc TARGET_OS_EMBEDDED := TRUE}
  147. {$elsec}
  148. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
  149. {$endc}
  150. {$ifc defined __LP64__ and __LP64__ }
  151. {$setc TARGET_CPU_64 := TRUE}
  152. {$elsec}
  153. {$setc TARGET_CPU_64 := FALSE}
  154. {$endc}
  155. {$ifc defined FPC_BIG_ENDIAN}
  156. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  157. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  158. {$elifc defined FPC_LITTLE_ENDIAN}
  159. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  160. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  161. {$elsec}
  162. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  163. {$endc}
  164. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  165. {$setc CALL_NOT_IN_CARBON := FALSE}
  166. {$setc OLDROUTINENAMES := FALSE}
  167. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  168. {$setc OPAQUE_UPP_TYPES := TRUE}
  169. {$setc OTCARBONAPPLICATION := TRUE}
  170. {$setc OTKERNEL := FALSE}
  171. {$setc PM_USE_SESSION_APIS := TRUE}
  172. {$setc TARGET_API_MAC_CARBON := TRUE}
  173. {$setc TARGET_API_MAC_OS8 := FALSE}
  174. {$setc TARGET_API_MAC_OSX := TRUE}
  175. {$setc TARGET_CARBON := TRUE}
  176. {$setc TARGET_CPU_68K := FALSE}
  177. {$setc TARGET_CPU_MIPS := FALSE}
  178. {$setc TARGET_CPU_SPARC := FALSE}
  179. {$setc TARGET_OS_UNIX := FALSE}
  180. {$setc TARGET_OS_WIN32 := FALSE}
  181. {$setc TARGET_RT_MAC_68881 := FALSE}
  182. {$setc TARGET_RT_MAC_CFM := FALSE}
  183. {$setc TARGET_RT_MAC_MACHO := TRUE}
  184. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  185. {$setc TYPE_BOOL := FALSE}
  186. {$setc TYPE_EXTENDED := FALSE}
  187. {$setc TYPE_LONGLONG := TRUE}
  188. uses MacTypes,CFBase;
  189. {$endc} {not MACOSALLINCLUDE}
  190. {$ALIGN POWER}
  191. type
  192. CFStringEncodings = CFIndex;
  193. const
  194. { kCFStringEncodingMacRoman = 0L, defined in CoreFoundation/CFString.h }
  195. kCFStringEncodingMacJapanese = 1;
  196. kCFStringEncodingMacChineseTrad = 2;
  197. kCFStringEncodingMacKorean = 3;
  198. kCFStringEncodingMacArabic = 4;
  199. kCFStringEncodingMacHebrew = 5;
  200. kCFStringEncodingMacGreek = 6;
  201. kCFStringEncodingMacCyrillic = 7;
  202. kCFStringEncodingMacDevanagari = 9;
  203. kCFStringEncodingMacGurmukhi = 10;
  204. kCFStringEncodingMacGujarati = 11;
  205. kCFStringEncodingMacOriya = 12;
  206. kCFStringEncodingMacBengali = 13;
  207. kCFStringEncodingMacTamil = 14;
  208. kCFStringEncodingMacTelugu = 15;
  209. kCFStringEncodingMacKannada = 16;
  210. kCFStringEncodingMacMalayalam = 17;
  211. kCFStringEncodingMacSinhalese = 18;
  212. kCFStringEncodingMacBurmese = 19;
  213. kCFStringEncodingMacKhmer = 20;
  214. kCFStringEncodingMacThai = 21;
  215. kCFStringEncodingMacLaotian = 22;
  216. kCFStringEncodingMacGeorgian = 23;
  217. kCFStringEncodingMacArmenian = 24;
  218. kCFStringEncodingMacChineseSimp = 25;
  219. kCFStringEncodingMacTibetan = 26;
  220. kCFStringEncodingMacMongolian = 27;
  221. kCFStringEncodingMacEthiopic = 28;
  222. kCFStringEncodingMacCentralEurRoman = 29;
  223. kCFStringEncodingMacVietnamese = 30;
  224. kCFStringEncodingMacExtArabic = 31;
  225. { The following use script code 0, smRoman }
  226. kCFStringEncodingMacSymbol = 33;
  227. kCFStringEncodingMacDingbats = 34;
  228. kCFStringEncodingMacTurkish = 35;
  229. kCFStringEncodingMacCroatian = 36;
  230. kCFStringEncodingMacIcelandic = 37;
  231. kCFStringEncodingMacRomanian = 38;
  232. kCFStringEncodingMacCeltic = 39;
  233. kCFStringEncodingMacGaelic = 40;
  234. { The following use script code 4, smArabic }
  235. kCFStringEncodingMacFarsi = $8C; { Like MacArabic but uses Farsi digits }
  236. { The following use script code 7, smCyrillic }
  237. kCFStringEncodingMacUkrainian = $98;
  238. { The following use script code 32, smUnimplemented }
  239. kCFStringEncodingMacInuit = $EC;
  240. kCFStringEncodingMacVT100 = $FC; { VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc }
  241. { Special Mac OS encodings}
  242. kCFStringEncodingMacHFS = $FF; { Meta-value, should never appear in a table }
  243. { Unicode & ISO UCS encodings begin at 0x100 }
  244. { We don't use Unicode variations defined in TextEncoding; use the ones in CFString.h, instead. }
  245. { ISO 8-bit and 7-bit encodings begin at 0x200 }
  246. { kCFStringEncodingISOLatin1 = 0x0201, defined in CoreFoundation/CFString.h }
  247. kCFStringEncodingISOLatin2 = $0202; { ISO 8859-2 }
  248. kCFStringEncodingISOLatin3 = $0203; { ISO 8859-3 }
  249. kCFStringEncodingISOLatin4 = $0204; { ISO 8859-4 }
  250. kCFStringEncodingISOLatinCyrillic = $0205; { ISO 8859-5 }
  251. kCFStringEncodingISOLatinArabic = $0206; { ISO 8859-6, =ASMO 708, =DOS CP 708 }
  252. kCFStringEncodingISOLatinGreek = $0207; { ISO 8859-7 }
  253. kCFStringEncodingISOLatinHebrew = $0208; { ISO 8859-8 }
  254. kCFStringEncodingISOLatin5 = $0209; { ISO 8859-9 }
  255. kCFStringEncodingISOLatin6 = $020A; { ISO 8859-10 }
  256. kCFStringEncodingISOLatinThai = $020B; { ISO 8859-11 }
  257. kCFStringEncodingISOLatin7 = $020D; { ISO 8859-13 }
  258. kCFStringEncodingISOLatin8 = $020E; { ISO 8859-14 }
  259. kCFStringEncodingISOLatin9 = $020F; { ISO 8859-15 }
  260. {#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4}
  261. kCFStringEncodingISOLatin10 = $0210; { ISO 8859-16 }
  262. {#endif} { MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 }
  263. { MS-DOS & Windows encodings begin at 0x400 }
  264. kCFStringEncodingDOSLatinUS = $0400; { code page 437 }
  265. kCFStringEncodingDOSGreek = $0405; { code page 737 (formerly code page 437G) }
  266. kCFStringEncodingDOSBalticRim = $0406; { code page 775 }
  267. kCFStringEncodingDOSLatin1 = $0410; { code page 850, "Multilingual" }
  268. kCFStringEncodingDOSGreek1 = $0411; { code page 851 }
  269. kCFStringEncodingDOSLatin2 = $0412; { code page 852, Slavic }
  270. kCFStringEncodingDOSCyrillic = $0413; { code page 855, IBM Cyrillic }
  271. kCFStringEncodingDOSTurkish = $0414; { code page 857, IBM Turkish }
  272. kCFStringEncodingDOSPortuguese = $0415; { code page 860 }
  273. kCFStringEncodingDOSIcelandic = $0416; { code page 861 }
  274. kCFStringEncodingDOSHebrew = $0417; { code page 862 }
  275. kCFStringEncodingDOSCanadianFrench = $0418; { code page 863 }
  276. kCFStringEncodingDOSArabic = $0419; { code page 864 }
  277. kCFStringEncodingDOSNordic = $041A; { code page 865 }
  278. kCFStringEncodingDOSRussian = $041B; { code page 866 }
  279. kCFStringEncodingDOSGreek2 = $041C; { code page 869, IBM Modern Greek }
  280. kCFStringEncodingDOSThai = $041D; { code page 874, also for Windows }
  281. kCFStringEncodingDOSJapanese = $0420; { code page 932, also for Windows }
  282. kCFStringEncodingDOSChineseSimplif = $0421; { code page 936, also for Windows }
  283. kCFStringEncodingDOSKorean = $0422; { code page 949, also for Windows; Unified Hangul Code }
  284. kCFStringEncodingDOSChineseTrad = $0423; { code page 950, also for Windows }
  285. { kCFStringEncodingWindowsLatin1 = $0500, defined in CoreFoundation/CFString.h }
  286. kCFStringEncodingWindowsLatin2 = $0501; { code page 1250, Central Europe }
  287. kCFStringEncodingWindowsCyrillic = $0502; { code page 1251, Slavic Cyrillic }
  288. kCFStringEncodingWindowsGreek = $0503; { code page 1253 }
  289. kCFStringEncodingWindowsLatin5 = $0504; { code page 1254, Turkish }
  290. kCFStringEncodingWindowsHebrew = $0505; { code page 1255 }
  291. kCFStringEncodingWindowsArabic = $0506; { code page 1256 }
  292. kCFStringEncodingWindowsBalticRim = $0507; { code page 1257 }
  293. kCFStringEncodingWindowsVietnamese = $0508; { code page 1258 }
  294. kCFStringEncodingWindowsKoreanJohab = $0510; { code page 1361, for Windows NT }
  295. { Various national standards begin at 0x600 }
  296. { kCFStringEncodingASCII = 0x0600, defined in CoreFoundation/CFString.h }
  297. {#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4}
  298. kCFStringEncodingANSEL = $0601; { ANSEL (ANSI Z39.47) }
  299. {#endif} { MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 }
  300. kCFStringEncodingJIS_X0201_76 = $0620;
  301. kCFStringEncodingJIS_X0208_83 = $0621;
  302. kCFStringEncodingJIS_X0208_90 = $0622;
  303. kCFStringEncodingJIS_X0212_90 = $0623;
  304. kCFStringEncodingJIS_C6226_78 = $0624;
  305. kCFStringEncodingShiftJIS_X0213_MenKuTen = $0629; (* CF_AVAILABLE_STARTING(10_5, 2_0) *) { JIS X0213 in plane-row-column notation }
  306. kCFStringEncodingGB_2312_80 = $0630;
  307. kCFStringEncodingGBK_95 = $0631; { annex to GB 13000-93, for Windows 95 }
  308. kCFStringEncodingGB_18030_2000 = $0632;
  309. kCFStringEncodingKSC_5601_87 = $0640; { same as KSC 5601-92 without Johab annex }
  310. kCFStringEncodingKSC_5601_92_Johab = $0641; { KSC 5601-92 Johab annex }
  311. kCFStringEncodingCNS_11643_92_P1 = $0651; { CNS 11643-1992 plane 1 }
  312. kCFStringEncodingCNS_11643_92_P2 = $0652; { CNS 11643-1992 plane 2 }
  313. kCFStringEncodingCNS_11643_92_P3 = $0653; { CNS 11643-1992 plane 3 (was plane 14 in 1986 version) }
  314. { ISO 2022 collections begin at $800 }
  315. kCFStringEncodingISO_2022_JP = $0820;
  316. kCFStringEncodingISO_2022_JP_2 = $0821;
  317. kCFStringEncodingISO_2022_JP_1 = $0822; { RFC 2237}
  318. kCFStringEncodingISO_2022_JP_3 = $0823; { JIS X0213}
  319. kCFStringEncodingISO_2022_CN = $0830;
  320. kCFStringEncodingISO_2022_CN_EXT = $0831;
  321. kCFStringEncodingISO_2022_KR = $0840;
  322. { EUC collections begin at $900 }
  323. kCFStringEncodingEUC_JP = $0920; { ISO 646, 1-byte katakana, JIS 208, JIS 212 }
  324. kCFStringEncodingEUC_CN = $0930; { ISO 646, GB 2312-80 }
  325. kCFStringEncodingEUC_TW = $0931; { ISO 646, CNS 11643-1992 Planes 1-16 }
  326. kCFStringEncodingEUC_KR = $0940; { ISO 646, KS C 5601-1987 }
  327. { Misc standards begin at $A00 }
  328. kCFStringEncodingShiftJIS = $0A01; { plain Shift-JIS }
  329. kCFStringEncodingKOI8_R = $0A02; { Russian internet standard }
  330. kCFStringEncodingBig5 = $0A03; { Big-5 (has variants) }
  331. kCFStringEncodingMacRomanLatin1 = $0A04; { Mac OS Roman permuted to align with ISO Latin-1 }
  332. kCFStringEncodingHZ_GB_2312 = $0A05; { HZ (RFC 1842, for Chinese mail & news) }
  333. kCFStringEncodingBig5_HKSCS_1999 = $0A06; { Big-5 with Hong Kong special char set supplement}
  334. kCFStringEncodingVISCII = $0A07; { RFC 1456, Vietnamese }
  335. kCFStringEncodingKOI8_U = $0A08; { RFC 2319, Ukrainian }
  336. kCFStringEncodingBig5_E = $0A09; { Taiwan Big-5E standard }
  337. { Other platform encodings}
  338. { kCFStringEncodingNextStepLatin = $0B01, defined in CoreFoundation/CFString.h }
  339. kCFStringEncodingNextStepJapanese = $0B02; { NextStep Japanese encoding }
  340. { EBCDIC & IBM host encodings begin at $C00 }
  341. kCFStringEncodingEBCDIC_US = $0C01; { basic EBCDIC-US }
  342. kCFStringEncodingEBCDIC_CP037 = $0C02; { code page 037, extended EBCDIC (Latin-1 set) for US,Canada... }
  343. kCFStringEncodingUTF7 = $04000100; (* CF_AVAILABLE_STARTING(10_6, 4_0) *) { kTextEncodingUnicodeDefault + kUnicodeUTF7Format RFC2152 }
  344. kCFStringEncodingUTF7_IMAP = $0A10; (* CF_AVAILABLE_STARTING(10_6, 4_0) *) { UTF-7 (IMAP folder variant) RFC3501 }
  345. { Deprecated constants }
  346. kCFStringEncodingShiftJIS_X0213_00 = $0628; { Shift-JIS format encoding of JIS X0213 planes 1 and 2 (DEPRECATED) }
  347. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  348. end.
  349. {$endc} {not MACOSALLINCLUDE}