CFStringEncodingExt.pas 12 KB

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