Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

573 lines
15 KiB

  1. /*
  2. File: TextEncodingConverter.h
  3. Contains: Text Encoding Conversion Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1994-2001 by Apple Computer, Inc., all rights reserved.
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __TEXTENCODINGCONVERTER__
  11. #define __TEXTENCODINGCONVERTER__
  12. #ifndef __MACTYPES__
  13. #include <MacTypes.h>
  14. #endif
  15. #ifndef __TEXTCOMMON__
  16. #include <TextCommon.h>
  17. #endif
  18. #if PRAGMA_ONCE
  19. #pragma once
  20. #endif
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. #if PRAGMA_IMPORT
  25. #pragma import on
  26. #endif
  27. #if PRAGMA_STRUCT_ALIGN
  28. #pragma options align=mac68k
  29. #elif PRAGMA_STRUCT_PACKPUSH
  30. #pragma pack(push, 2)
  31. #elif PRAGMA_STRUCT_PACK
  32. #pragma pack(2)
  33. #endif
  34. typedef OSType TECPluginSignature;
  35. typedef UInt32 TECPluginVersion;
  36. /* plugin signatures */
  37. enum {
  38. kTECSignature = FOUR_CHAR_CODE('encv'),
  39. kTECUnicodePluginSignature = FOUR_CHAR_CODE('puni'),
  40. kTECJapanesePluginSignature = FOUR_CHAR_CODE('pjpn'),
  41. kTECChinesePluginSignature = FOUR_CHAR_CODE('pzho'),
  42. kTECKoreanPluginSignature = FOUR_CHAR_CODE('pkor')
  43. };
  44. /* converter object reference */
  45. typedef struct OpaqueTECObjectRef* TECObjectRef;
  46. typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef;
  47. typedef OSType TECPluginSig;
  48. struct TECConversionInfo {
  49. TextEncoding sourceEncoding;
  50. TextEncoding destinationEncoding;
  51. UInt16 reserved1;
  52. UInt16 reserved2;
  53. };
  54. typedef struct TECConversionInfo TECConversionInfo;
  55. /* return number of encodings types supported by user's configuraton of the encoding converter */
  56. /*
  57. * TECCountAvailableTextEncodings()
  58. *
  59. * Availability:
  60. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  61. * CarbonLib: in CarbonLib 1.0 and later
  62. * Mac OS X: in version 10.0 and later
  63. */
  64. EXTERN_API( OSStatus )
  65. TECCountAvailableTextEncodings(ItemCount * numberEncodings);
  66. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  67. /*
  68. * TECGetAvailableTextEncodings()
  69. *
  70. * Availability:
  71. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  72. * CarbonLib: in CarbonLib 1.0 and later
  73. * Mac OS X: in version 10.0 and later
  74. */
  75. EXTERN_API( OSStatus )
  76. TECGetAvailableTextEncodings(
  77. TextEncoding availableEncodings[],
  78. ItemCount maxAvailableEncodings,
  79. ItemCount * actualAvailableEncodings);
  80. /* return number of from-to encoding conversion pairs supported */
  81. /*
  82. * TECCountDirectTextEncodingConversions()
  83. *
  84. * Availability:
  85. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  86. * CarbonLib: in CarbonLib 1.0 and later
  87. * Mac OS X: in version 10.0 and later
  88. */
  89. EXTERN_API( OSStatus )
  90. TECCountDirectTextEncodingConversions(ItemCount * numberOfEncodings);
  91. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  92. /*
  93. * TECGetDirectTextEncodingConversions()
  94. *
  95. * Availability:
  96. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  97. * CarbonLib: in CarbonLib 1.0 and later
  98. * Mac OS X: in version 10.0 and later
  99. */
  100. EXTERN_API( OSStatus )
  101. TECGetDirectTextEncodingConversions(
  102. TECConversionInfo availableConversions[],
  103. ItemCount maxAvailableConversions,
  104. ItemCount * actualAvailableConversions);
  105. /* return number of encodings a given encoding can be converter into */
  106. /*
  107. * TECCountDestinationTextEncodings()
  108. *
  109. * Availability:
  110. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  111. * CarbonLib: in CarbonLib 1.0 and later
  112. * Mac OS X: in version 10.0 and later
  113. */
  114. EXTERN_API( OSStatus )
  115. TECCountDestinationTextEncodings(
  116. TextEncoding inputEncoding,
  117. ItemCount * numberOfEncodings);
  118. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  119. /*
  120. * TECGetDestinationTextEncodings()
  121. *
  122. * Availability:
  123. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  124. * CarbonLib: in CarbonLib 1.0 and later
  125. * Mac OS X: in version 10.0 and later
  126. */
  127. EXTERN_API( OSStatus )
  128. TECGetDestinationTextEncodings(
  129. TextEncoding inputEncoding,
  130. TextEncoding destinationEncodings[],
  131. ItemCount maxDestinationEncodings,
  132. ItemCount * actualDestinationEncodings);
  133. /* get info about a text encoding */
  134. /*
  135. * TECGetTextEncodingInternetName()
  136. *
  137. * Availability:
  138. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  139. * CarbonLib: in CarbonLib 1.0 and later
  140. * Mac OS X: in version 10.0 and later
  141. */
  142. EXTERN_API( OSStatus )
  143. TECGetTextEncodingInternetName(
  144. TextEncoding textEncoding,
  145. Str255 encodingName);
  146. /*
  147. * TECGetTextEncodingFromInternetName()
  148. *
  149. * Availability:
  150. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  151. * CarbonLib: in CarbonLib 1.0 and later
  152. * Mac OS X: in version 10.0 and later
  153. */
  154. EXTERN_API( OSStatus )
  155. TECGetTextEncodingFromInternetName(
  156. TextEncoding * textEncoding,
  157. ConstStr255Param encodingName);
  158. /* create/dispose converters */
  159. /*
  160. * TECCreateConverter()
  161. *
  162. * Availability:
  163. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  164. * CarbonLib: in CarbonLib 1.0 and later
  165. * Mac OS X: in version 10.0 and later
  166. */
  167. EXTERN_API( OSStatus )
  168. TECCreateConverter(
  169. TECObjectRef * newEncodingConverter,
  170. TextEncoding inputEncoding,
  171. TextEncoding outputEncoding);
  172. /*
  173. * TECCreateConverterFromPath()
  174. *
  175. * Availability:
  176. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  177. * CarbonLib: in CarbonLib 1.0 and later
  178. * Mac OS X: in version 10.0 and later
  179. */
  180. EXTERN_API( OSStatus )
  181. TECCreateConverterFromPath(
  182. TECObjectRef * newEncodingConverter,
  183. const TextEncoding inPath[],
  184. ItemCount inEncodings);
  185. /*
  186. * TECDisposeConverter()
  187. *
  188. * Availability:
  189. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  190. * CarbonLib: in CarbonLib 1.0 and later
  191. * Mac OS X: in version 10.0 and later
  192. */
  193. EXTERN_API( OSStatus )
  194. TECDisposeConverter(TECObjectRef newEncodingConverter);
  195. /* convert text encodings */
  196. /*
  197. * TECClearConverterContextInfo()
  198. *
  199. * Availability:
  200. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  201. * CarbonLib: in CarbonLib 1.0 and later
  202. * Mac OS X: in version 10.0 and later
  203. */
  204. EXTERN_API( OSStatus )
  205. TECClearConverterContextInfo(TECObjectRef encodingConverter);
  206. /*
  207. * TECConvertText()
  208. *
  209. * Availability:
  210. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  211. * CarbonLib: in CarbonLib 1.0 and later
  212. * Mac OS X: in version 10.0 and later
  213. */
  214. EXTERN_API( OSStatus )
  215. TECConvertText(
  216. TECObjectRef encodingConverter,
  217. ConstTextPtr inputBuffer,
  218. ByteCount inputBufferLength,
  219. ByteCount * actualInputLength,
  220. TextPtr outputBuffer,
  221. ByteCount outputBufferLength,
  222. ByteCount * actualOutputLength);
  223. /*
  224. * TECFlushText()
  225. *
  226. * Availability:
  227. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  228. * CarbonLib: in CarbonLib 1.0 and later
  229. * Mac OS X: in version 10.0 and later
  230. */
  231. EXTERN_API( OSStatus )
  232. TECFlushText(
  233. TECObjectRef encodingConverter,
  234. TextPtr outputBuffer,
  235. ByteCount outputBufferLength,
  236. ByteCount * actualOutputLength);
  237. /* one-to-many routines */
  238. /*
  239. * TECCountSubTextEncodings()
  240. *
  241. * Availability:
  242. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  243. * CarbonLib: in CarbonLib 1.0 and later
  244. * Mac OS X: in version 10.0 and later
  245. */
  246. EXTERN_API( OSStatus )
  247. TECCountSubTextEncodings(
  248. TextEncoding inputEncoding,
  249. ItemCount * numberOfEncodings);
  250. /*
  251. * TECGetSubTextEncodings()
  252. *
  253. * Availability:
  254. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  255. * CarbonLib: in CarbonLib 1.0 and later
  256. * Mac OS X: in version 10.0 and later
  257. */
  258. EXTERN_API( OSStatus )
  259. TECGetSubTextEncodings(
  260. TextEncoding inputEncoding,
  261. TextEncoding subEncodings[],
  262. ItemCount maxSubEncodings,
  263. ItemCount * actualSubEncodings);
  264. /*
  265. * TECGetEncodingList()
  266. *
  267. * Availability:
  268. * Non-Carbon CFM: in TextEncodingConverter 1.1 and later
  269. * CarbonLib: in CarbonLib 1.0 and later
  270. * Mac OS X: in version 10.0 and later
  271. */
  272. EXTERN_API( OSStatus )
  273. TECGetEncodingList(
  274. TECObjectRef encodingConverter,
  275. ItemCount * numEncodings,
  276. Handle * encodingList);
  277. /*
  278. * TECCreateOneToManyConverter()
  279. *
  280. * Availability:
  281. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  282. * CarbonLib: in CarbonLib 1.0 and later
  283. * Mac OS X: in version 10.0 and later
  284. */
  285. EXTERN_API( OSStatus )
  286. TECCreateOneToManyConverter(
  287. TECObjectRef * newEncodingConverter,
  288. TextEncoding inputEncoding,
  289. ItemCount numOutputEncodings,
  290. const TextEncoding outputEncodings[]);
  291. /*
  292. * TECConvertTextToMultipleEncodings()
  293. *
  294. * Availability:
  295. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  296. * CarbonLib: in CarbonLib 1.0 and later
  297. * Mac OS X: in version 10.0 and later
  298. */
  299. EXTERN_API( OSStatus )
  300. TECConvertTextToMultipleEncodings(
  301. TECObjectRef encodingConverter,
  302. ConstTextPtr inputBuffer,
  303. ByteCount inputBufferLength,
  304. ByteCount * actualInputLength,
  305. TextPtr outputBuffer,
  306. ByteCount outputBufferLength,
  307. ByteCount * actualOutputLength,
  308. TextEncodingRun outEncodingsBuffer[],
  309. ItemCount maxOutEncodingRuns,
  310. ItemCount * actualOutEncodingRuns);
  311. /*
  312. * TECFlushMultipleEncodings()
  313. *
  314. * Availability:
  315. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  316. * CarbonLib: in CarbonLib 1.0 and later
  317. * Mac OS X: in version 10.0 and later
  318. */
  319. EXTERN_API( OSStatus )
  320. TECFlushMultipleEncodings(
  321. TECObjectRef encodingConverter,
  322. TextPtr outputBuffer,
  323. ByteCount outputBufferLength,
  324. ByteCount * actualOutputLength,
  325. TextEncodingRun outEncodingsBuffer[],
  326. ItemCount maxOutEncodingRuns,
  327. ItemCount * actualOutEncodingRuns);
  328. /* international internet info */
  329. /*
  330. * TECCountWebTextEncodings()
  331. *
  332. * Availability:
  333. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  334. * CarbonLib: in CarbonLib 1.0 and later
  335. * Mac OS X: in version 10.0 and later
  336. */
  337. EXTERN_API( OSStatus )
  338. TECCountWebTextEncodings(
  339. RegionCode locale,
  340. ItemCount * numberEncodings);
  341. /*
  342. * TECGetWebTextEncodings()
  343. *
  344. * Availability:
  345. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  346. * CarbonLib: in CarbonLib 1.0 and later
  347. * Mac OS X: in version 10.0 and later
  348. */
  349. EXTERN_API( OSStatus )
  350. TECGetWebTextEncodings(
  351. RegionCode locale,
  352. TextEncoding availableEncodings[],
  353. ItemCount maxAvailableEncodings,
  354. ItemCount * actualAvailableEncodings);
  355. /*
  356. * TECCountMailTextEncodings()
  357. *
  358. * Availability:
  359. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  360. * CarbonLib: in CarbonLib 1.0 and later
  361. * Mac OS X: in version 10.0 and later
  362. */
  363. EXTERN_API( OSStatus )
  364. TECCountMailTextEncodings(
  365. RegionCode locale,
  366. ItemCount * numberEncodings);
  367. /*
  368. * TECGetMailTextEncodings()
  369. *
  370. * Availability:
  371. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  372. * CarbonLib: in CarbonLib 1.0 and later
  373. * Mac OS X: in version 10.0 and later
  374. */
  375. EXTERN_API( OSStatus )
  376. TECGetMailTextEncodings(
  377. RegionCode locale,
  378. TextEncoding availableEncodings[],
  379. ItemCount maxAvailableEncodings,
  380. ItemCount * actualAvailableEncodings);
  381. /* examine text encodings */
  382. /*
  383. * TECCountAvailableSniffers()
  384. *
  385. * Availability:
  386. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  387. * CarbonLib: in CarbonLib 1.0 and later
  388. * Mac OS X: in version 10.0 and later
  389. */
  390. EXTERN_API( OSStatus )
  391. TECCountAvailableSniffers(ItemCount * numberOfEncodings);
  392. /*
  393. * TECGetAvailableSniffers()
  394. *
  395. * Availability:
  396. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  397. * CarbonLib: in CarbonLib 1.0 and later
  398. * Mac OS X: in version 10.0 and later
  399. */
  400. EXTERN_API( OSStatus )
  401. TECGetAvailableSniffers(
  402. TextEncoding availableSniffers[],
  403. ItemCount maxAvailableSniffers,
  404. ItemCount * actualAvailableSniffers);
  405. /*
  406. * TECCreateSniffer()
  407. *
  408. * Availability:
  409. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  410. * CarbonLib: in CarbonLib 1.0 and later
  411. * Mac OS X: in version 10.0 and later
  412. */
  413. EXTERN_API( OSStatus )
  414. TECCreateSniffer(
  415. TECSnifferObjectRef * encodingSniffer,
  416. TextEncoding testEncodings[],
  417. ItemCount numTextEncodings);
  418. /*
  419. * TECSniffTextEncoding()
  420. *
  421. * Availability:
  422. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  423. * CarbonLib: in CarbonLib 1.0 and later
  424. * Mac OS X: in version 10.0 and later
  425. */
  426. EXTERN_API( OSStatus )
  427. TECSniffTextEncoding(
  428. TECSnifferObjectRef encodingSniffer,
  429. TextPtr inputBuffer,
  430. ByteCount inputBufferLength,
  431. TextEncoding testEncodings[],
  432. ItemCount numTextEncodings,
  433. ItemCount numErrsArray[],
  434. ItemCount maxErrs,
  435. ItemCount numFeaturesArray[],
  436. ItemCount maxFeatures);
  437. /*
  438. * TECDisposeSniffer()
  439. *
  440. * Availability:
  441. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  442. * CarbonLib: in CarbonLib 1.0 and later
  443. * Mac OS X: in version 10.0 and later
  444. */
  445. EXTERN_API( OSStatus )
  446. TECDisposeSniffer(TECSnifferObjectRef encodingSniffer);
  447. /*
  448. * TECClearSnifferContextInfo()
  449. *
  450. * Availability:
  451. * Non-Carbon CFM: in TextEncodingConverter 1.2 and later
  452. * CarbonLib: in CarbonLib 1.0 and later
  453. * Mac OS X: in version 10.0 and later
  454. */
  455. EXTERN_API( OSStatus )
  456. TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer);
  457. #if CALL_NOT_IN_CARBON
  458. /*
  459. * TECSetBasicOptions()
  460. *
  461. * Availability:
  462. * Non-Carbon CFM: in TextEncodingConverter 1.5 and later
  463. * CarbonLib: not available
  464. * Mac OS X: not available
  465. */
  466. EXTERN_API( OSStatus )
  467. TECSetBasicOptions(
  468. TECObjectRef encodingConverter,
  469. OptionBits controlFlags);
  470. #endif /* CALL_NOT_IN_CARBON */
  471. #if PRAGMA_STRUCT_ALIGN
  472. #pragma options align=reset
  473. #elif PRAGMA_STRUCT_PACKPUSH
  474. #pragma pack(pop)
  475. #elif PRAGMA_STRUCT_PACK
  476. #pragma pack()
  477. #endif
  478. #ifdef PRAGMA_IMPORT_OFF
  479. #pragma import off
  480. #elif PRAGMA_IMPORT
  481. #pragma import reset
  482. #endif
  483. #ifdef __cplusplus
  484. }
  485. #endif
  486. #endif /* __TEXTENCODINGCONVERTER__ */