/* File: TextEncodingConverter.h Contains: Text Encoding Conversion Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1994-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __TEXTENCODINGCONVERTER__ #define __TEXTENCODINGCONVERTER__ #ifndef __MACTYPES__ #include #endif #ifndef __TEXTCOMMON__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif typedef OSType TECPluginSignature; typedef UInt32 TECPluginVersion; /* plugin signatures */ enum { kTECSignature = FOUR_CHAR_CODE('encv'), kTECUnicodePluginSignature = FOUR_CHAR_CODE('puni'), kTECJapanesePluginSignature = FOUR_CHAR_CODE('pjpn'), kTECChinesePluginSignature = FOUR_CHAR_CODE('pzho'), kTECKoreanPluginSignature = FOUR_CHAR_CODE('pkor') }; /* converter object reference */ typedef struct OpaqueTECObjectRef* TECObjectRef; typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef; typedef OSType TECPluginSig; struct TECConversionInfo { TextEncoding sourceEncoding; TextEncoding destinationEncoding; UInt16 reserved1; UInt16 reserved2; }; typedef struct TECConversionInfo TECConversionInfo; /* return number of encodings types supported by user's configuraton of the encoding converter */ /* * TECCountAvailableTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountAvailableTextEncodings(ItemCount * numberEncodings); /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */ /* * TECGetAvailableTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetAvailableTextEncodings( TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount * actualAvailableEncodings); /* return number of from-to encoding conversion pairs supported */ /* * TECCountDirectTextEncodingConversions() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountDirectTextEncodingConversions(ItemCount * numberOfEncodings); /* 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. */ /* * TECGetDirectTextEncodingConversions() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetDirectTextEncodingConversions( TECConversionInfo availableConversions[], ItemCount maxAvailableConversions, ItemCount * actualAvailableConversions); /* return number of encodings a given encoding can be converter into */ /* * TECCountDestinationTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountDestinationTextEncodings( TextEncoding inputEncoding, ItemCount * numberOfEncodings); /* 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. */ /* * TECGetDestinationTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetDestinationTextEncodings( TextEncoding inputEncoding, TextEncoding destinationEncodings[], ItemCount maxDestinationEncodings, ItemCount * actualDestinationEncodings); /* get info about a text encoding */ /* * TECGetTextEncodingInternetName() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetTextEncodingInternetName( TextEncoding textEncoding, Str255 encodingName); /* * TECGetTextEncodingFromInternetName() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetTextEncodingFromInternetName( TextEncoding * textEncoding, ConstStr255Param encodingName); /* create/dispose converters */ /* * TECCreateConverter() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCreateConverter( TECObjectRef * newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding); /* * TECCreateConverterFromPath() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCreateConverterFromPath( TECObjectRef * newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings); /* * TECDisposeConverter() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECDisposeConverter(TECObjectRef newEncodingConverter); /* convert text encodings */ /* * TECClearConverterContextInfo() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECClearConverterContextInfo(TECObjectRef encodingConverter); /* * TECConvertText() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECConvertText( TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount * actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount * actualOutputLength); /* * TECFlushText() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECFlushText( TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount * actualOutputLength); /* one-to-many routines */ /* * TECCountSubTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountSubTextEncodings( TextEncoding inputEncoding, ItemCount * numberOfEncodings); /* * TECGetSubTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetSubTextEncodings( TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount * actualSubEncodings); /* * TECGetEncodingList() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetEncodingList( TECObjectRef encodingConverter, ItemCount * numEncodings, Handle * encodingList); /* * TECCreateOneToManyConverter() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCreateOneToManyConverter( TECObjectRef * newEncodingConverter, TextEncoding inputEncoding, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]); /* * TECConvertTextToMultipleEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECConvertTextToMultipleEncodings( TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount * actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount * actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount * actualOutEncodingRuns); /* * TECFlushMultipleEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECFlushMultipleEncodings( TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount * actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount * actualOutEncodingRuns); /* international internet info */ /* * TECCountWebTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountWebTextEncodings( RegionCode locale, ItemCount * numberEncodings); /* * TECGetWebTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetWebTextEncodings( RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount * actualAvailableEncodings); /* * TECCountMailTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountMailTextEncodings( RegionCode locale, ItemCount * numberEncodings); /* * TECGetMailTextEncodings() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetMailTextEncodings( RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount * actualAvailableEncodings); /* examine text encodings */ /* * TECCountAvailableSniffers() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCountAvailableSniffers(ItemCount * numberOfEncodings); /* * TECGetAvailableSniffers() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECGetAvailableSniffers( TextEncoding availableSniffers[], ItemCount maxAvailableSniffers, ItemCount * actualAvailableSniffers); /* * TECCreateSniffer() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECCreateSniffer( TECSnifferObjectRef * encodingSniffer, TextEncoding testEncodings[], ItemCount numTextEncodings); /* * TECSniffTextEncoding() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECSniffTextEncoding( TECSnifferObjectRef encodingSniffer, TextPtr inputBuffer, ByteCount inputBufferLength, TextEncoding testEncodings[], ItemCount numTextEncodings, ItemCount numErrsArray[], ItemCount maxErrs, ItemCount numFeaturesArray[], ItemCount maxFeatures); /* * TECDisposeSniffer() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECDisposeSniffer(TECSnifferObjectRef encodingSniffer); /* * TECClearSnifferContextInfo() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.2 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer); #if CALL_NOT_IN_CARBON /* * TECSetBasicOptions() * * Availability: * Non-Carbon CFM: in TextEncodingConverter 1.5 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSStatus ) TECSetBasicOptions( TECObjectRef encodingConverter, OptionBits controlFlags); #endif /* CALL_NOT_IN_CARBON */ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __TEXTENCODINGCONVERTER__ */