home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 May: Technology Seed / Mac Tech Seed May '97.toast / Mac OS 8b5 / Docs-Interfaces-Libs / Text Encoding Convertors / Headers / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-29  |  6.8 KB  |  150 lines  |  [TEXT/MPS ]

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