mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 14:46:53 +00:00
574 lines
15 KiB
C
574 lines
15 KiB
C
/*
|
|
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__ */
|
|
|