topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-TextEncodingConverter.h / h
/*
File: TextEncodingConverter.h
Contains: Text Encoding Conversion Interfaces.
Version: Technology: Mac OS 9.0
Release: QuickTime 6.0.2
Copyright: (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 */
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. */
EXTERN_API( OSStatus )
TECGetAvailableTextEncodings (TextEncoding availableEncodings[],
ItemCount maxAvailableEncodings,
ItemCount * actualAvailableEncodings);
/* return number of from-to encoding conversion pairs supported */
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. */
EXTERN_API( OSStatus )
TECGetDirectTextEncodingConversions (TECConversionInfo availableConversions[],
ItemCount maxAvailableConversions,
ItemCount * actualAvailableConversions);
/* return number of encodings a given encoding can be converter into */
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. */
EXTERN_API( OSStatus )
TECGetDestinationTextEncodings (TextEncoding inputEncoding,
TextEncoding destinationEncodings[],
ItemCount maxDestinationEncodings,
ItemCount * actualDestinationEncodings);
/* get info about a text encoding */
EXTERN_API( OSStatus )
TECGetTextEncodingInternetName (TextEncoding textEncoding,
Str255 encodingName);
EXTERN_API( OSStatus )
TECGetTextEncodingFromInternetName (TextEncoding * textEncoding,
ConstStr255Param encodingName);
/* create/dispose converters */
EXTERN_API( OSStatus )
TECCreateConverter (TECObjectRef * newEncodingConverter,
TextEncoding inputEncoding,
TextEncoding outputEncoding);
EXTERN_API( OSStatus )
TECCreateConverterFromPath (TECObjectRef * newEncodingConverter,
const TextEncoding inPath[],
ItemCount inEncodings);
EXTERN_API( OSStatus )
TECDisposeConverter (TECObjectRef newEncodingConverter);
/* convert text encodings */
EXTERN_API( OSStatus )
TECClearConverterContextInfo (TECObjectRef encodingConverter);
EXTERN_API( OSStatus )
TECConvertText (TECObjectRef encodingConverter,
ConstTextPtr inputBuffer,
ByteCount inputBufferLength,
ByteCount * actualInputLength,
TextPtr outputBuffer,
ByteCount outputBufferLength,
ByteCount * actualOutputLength);
EXTERN_API( OSStatus )
TECFlushText (TECObjectRef encodingConverter,
TextPtr outputBuffer,
ByteCount outputBufferLength,
ByteCount * actualOutputLength);
/* one-to-many routines */
EXTERN_API( OSStatus )
TECCountSubTextEncodings (TextEncoding inputEncoding,
ItemCount * numberOfEncodings);
EXTERN_API( OSStatus )
TECGetSubTextEncodings (TextEncoding inputEncoding,
TextEncoding subEncodings[],
ItemCount maxSubEncodings,
ItemCount * actualSubEncodings);
EXTERN_API( OSStatus )
TECGetEncodingList (TECObjectRef encodingConverter,
ItemCount * numEncodings,
Handle * encodingList);
EXTERN_API( OSStatus )
TECCreateOneToManyConverter (TECObjectRef * newEncodingConverter,
TextEncoding inputEncoding,
ItemCount numOutputEncodings,
const TextEncoding outputEncodings[]);
EXTERN_API( OSStatus )
TECConvertTextToMultipleEncodings (TECObjectRef encodingConverter,
ConstTextPtr inputBuffer,
ByteCount inputBufferLength,
ByteCount * actualInputLength,
TextPtr outputBuffer,
ByteCount outputBufferLength,
ByteCount * actualOutputLength,
TextEncodingRun outEncodingsBuffer[],
ItemCount maxOutEncodingRuns,
ItemCount * actualOutEncodingRuns);
EXTERN_API( OSStatus )
TECFlushMultipleEncodings (TECObjectRef encodingConverter,
TextPtr outputBuffer,
ByteCount outputBufferLength,
ByteCount * actualOutputLength,
TextEncodingRun outEncodingsBuffer[],
ItemCount maxOutEncodingRuns,
ItemCount * actualOutEncodingRuns);
/* international internet info */
EXTERN_API( OSStatus )
TECCountWebTextEncodings (RegionCode locale,
ItemCount * numberEncodings);
EXTERN_API( OSStatus )
TECGetWebTextEncodings (RegionCode locale,
TextEncoding availableEncodings[],
ItemCount maxAvailableEncodings,
ItemCount * actualAvailableEncodings);
EXTERN_API( OSStatus )
TECCountMailTextEncodings (RegionCode locale,
ItemCount * numberEncodings);
EXTERN_API( OSStatus )
TECGetMailTextEncodings (RegionCode locale,
TextEncoding availableEncodings[],
ItemCount maxAvailableEncodings,
ItemCount * actualAvailableEncodings);
/* examine text encodings */
EXTERN_API( OSStatus )
TECCountAvailableSniffers (ItemCount * numberOfEncodings);
EXTERN_API( OSStatus )
TECGetAvailableSniffers (TextEncoding availableSniffers[],
ItemCount maxAvailableSniffers,
ItemCount * actualAvailableSniffers);
EXTERN_API( OSStatus )
TECCreateSniffer (TECSnifferObjectRef * encodingSniffer,
TextEncoding testEncodings[],
ItemCount numTextEncodings);
EXTERN_API( OSStatus )
TECSniffTextEncoding (TECSnifferObjectRef encodingSniffer,
TextPtr inputBuffer,
ByteCount inputBufferLength,
TextEncoding testEncodings[],
ItemCount numTextEncodings,
ItemCount numErrsArray[],
ItemCount maxErrs,
ItemCount numFeaturesArray[],
ItemCount maxFeatures);
EXTERN_API( OSStatus )
TECDisposeSniffer (TECSnifferObjectRef encodingSniffer);
EXTERN_API( OSStatus )
TECClearSnifferContextInfo (TECSnifferObjectRef encodingSniffer);
if CALL_NOT_IN_CARBON
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__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.