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
573 lines
15 KiB
/* |
|
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 <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __TEXTCOMMON__ |
|
#include <TextCommon.h> |
|
#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__ */ |
|
|
|
|