CFStringEncodingExt.pas 14 KB

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