home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Technology Seed / ATS July '97.toast / Text Encoding Converter 1.2 / Headers / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-06-12  |  6.9 KB  |  151 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces.
  5.  
  6.      Copyright:    © 1984-1997 by Apple Computer, Inc.
  7.                  All rights reserved.
  8.  
  9.      Bugs:        Report bugs to Radar component “System Interfaces”, “Latest”
  10.                  List the version information (from above) in the Problem Description.
  11.  
  12. */
  13. #ifndef __TEXTENCODINGCONVERTER__
  14. #define __TEXTENCODINGCONVERTER__
  15.  
  16. #ifndef __TYPES__
  17. #include <Types.h>
  18. #endif
  19. #ifndef __MIXEDMODE__
  20. #include <MixedMode.h>
  21. #endif
  22. #ifndef __TEXTCOMMON__
  23. #include <TextCommon.h>
  24. #endif
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. #if PRAGMA_IMPORT_SUPPORTED
  31. #pragma import on
  32. #endif
  33.  
  34. #if PRAGMA_ALIGN_SUPPORTED
  35. #pragma options align=mac68k
  36. #endif
  37.  
  38. typedef OSType TECPluginSignature;
  39. typedef UInt32 TECPluginVersion;
  40. /* plugin signatures */
  41.  
  42. enum {
  43.     kTECSignature                = 'encv',
  44.     kTECUnicodePluginSignature    = 'puni',
  45.     kTECJapanesePluginSignature    = 'pjpn',
  46.     kTECChinesePluginSignature    = 'pzho',
  47.     kTECKoreanPluginSignature    = 'pkor'
  48. };
  49.  
  50. /* converter object reference */
  51. typedef struct OpaqueTECObjectRef* TECObjectRef;
  52. typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef;
  53. typedef OSType TECPluginSig;
  54. struct TECConversionInfo {
  55.     TextEncoding                     sourceEncoding;
  56.     TextEncoding                     destinationEncoding;
  57.     UInt16                             reserved1;
  58.     UInt16                             reserved2;
  59. };
  60. typedef struct TECConversionInfo TECConversionInfo;
  61.  
  62. /* return number of encodings types supported by user's configuraton of the encoding converter */
  63. extern pascal OSStatus TECCountAvailableTextEncodings(ItemCount *numberEncodings);
  64.  
  65. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  66. extern pascal OSStatus TECGetAvailableTextEncodings(TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  67.  
  68. /* return number of from-to encoding conversion pairs supported  */
  69. extern pascal OSStatus TECCountDirectTextEncodingConversions(ItemCount *numberOfEncodings);
  70.  
  71. /* 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. */
  72. extern pascal OSStatus TECGetDirectTextEncodingConversions(TECConversionInfo availableConversions[], ItemCount maxAvailableConversions, ItemCount *actualAvailableConversions);
  73.  
  74. /* return number of encodings a given encoding can be converter into */
  75. extern pascal OSStatus TECCountDestinationTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  76.  
  77. /* 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. */
  78. extern pascal OSStatus TECGetDestinationTextEncodings(TextEncoding inputEncoding, TextEncoding destinationEncodings[], ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings);
  79.  
  80. /* get info about a text encoding */
  81. extern pascal OSStatus TECGetTextEncodingInternetName(TextEncoding textEncoding, Str255 encodingName);
  82.  
  83. extern pascal OSStatus TECGetTextEncodingFromInternetName(TextEncoding *textEncoding, ConstStr255Param encodingName);
  84.  
  85. /* create/dispose converters */
  86. extern pascal OSStatus TECCreateConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding);
  87.  
  88. extern pascal OSStatus TECCreateConverterFromPath(TECObjectRef *newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings);
  89.  
  90. extern pascal OSStatus TECDisposeConverter(TECObjectRef newEncodingConverter);
  91.  
  92. /* convert text encodings */
  93. extern pascal OSStatus TECClearConverterContextInfo(TECObjectRef encodingConverter);
  94.  
  95. extern pascal OSStatus TECConvertText(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  96.  
  97. extern pascal OSStatus TECFlushText(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  98.  
  99. /* one-to-many routines */
  100. extern pascal OSStatus TECCountSubTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  101.  
  102. extern pascal OSStatus TECGetSubTextEncodings(TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount *actualSubEncodings);
  103.  
  104. extern pascal OSStatus TECGetEncodingList(TECObjectRef encodingConverter, ItemCount *numEncodings, Handle *encodingList);
  105.  
  106. extern pascal OSStatus TECCreateOneToManyConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]);
  107.  
  108. extern pascal OSStatus TECCreateOneToManyConverterFromPath(TECObjectRef *newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]);
  109.  
  110. extern pascal OSStatus TECConvertTextToMultipleEncodings(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  111.  
  112. extern pascal OSStatus TECFlushMultipleEncodings(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  113.  
  114. /* international internet info */
  115. extern pascal OSStatus TECCountWebTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  116.  
  117. extern pascal OSStatus TECGetWebTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  118.  
  119. extern pascal OSStatus TECCountMailTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  120.  
  121. extern pascal OSStatus TECGetMailTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  122.  
  123. /* examine text encodings */
  124. extern pascal OSStatus TECCountAvailableSniffers(ItemCount *numberOfEncodings);
  125.  
  126. extern pascal OSStatus TECGetAvailableSniffers(TextEncoding availableSniffers[], ItemCount maxAvailableSniffers, ItemCount *actualAvailableSniffers);
  127.  
  128. extern pascal OSStatus TECCreateSniffer(TECSnifferObjectRef *encodingSniffer, TextEncoding testEncodings[], ItemCount numTextEncodings);
  129.  
  130. extern pascal OSStatus TECSniffTextEncoding(TECSnifferObjectRef encodingSniffer, TextPtr inputBuffer, ByteCount inputBufferLength, TextEncoding testEncodings[], ItemCount numTextEncodings, ItemCount numErrsArray[], ItemCount maxErrs, ItemCount numFeaturesArray[], ItemCount maxFeatures);
  131.  
  132. extern pascal OSStatus TECDisposeSniffer(TECSnifferObjectRef encodingSniffer);
  133.  
  134. extern pascal OSStatus TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer);
  135.  
  136.  
  137. #if PRAGMA_ALIGN_SUPPORTED
  138. #pragma options align=reset
  139. #endif
  140.  
  141. #if PRAGMA_IMPORT_SUPPORTED
  142. #pragma import off
  143. #endif
  144.  
  145. #ifdef __cplusplus
  146. }
  147. #endif
  148.  
  149. #endif /* __TEXTENCODINGCONVERTER__ */
  150.  
  151.