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.
129 lines
3.8 KiB
129 lines
3.8 KiB
5 years ago
|
/*
|
||
|
File: HITextUtils.h
|
||
|
|
||
|
Contains: Text utilities provided by HIToolbox.
|
||
|
|
||
|
Version: QuickTime 7.3
|
||
|
|
||
|
Copyright: (c) 2007 (c)2002 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 __HITEXTUTILS__
|
||
|
#define __HITEXTUTILS__
|
||
|
|
||
|
#ifndef __MACTYPES__
|
||
|
#include <MacTypes.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __COREFOUNDATION__
|
||
|
#include <CoreFoundation.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
|
||
|
|
||
|
/*
|
||
|
* GetTextAndEncodingFromCFString()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Converts the contents of a CFString to the one- or two-byte
|
||
|
* encoding that most accurately represents the original Unicode
|
||
|
* characters in the string.
|
||
|
*
|
||
|
* Discussion:
|
||
|
* Because the Macintosh toolbox has had, until Carbon, little
|
||
|
* support for Unicode, you may often find that your applications
|
||
|
* need to translate a CFString (containing Unicode characters) back
|
||
|
* to a one- or two-byte encoding of the string in order to draw,
|
||
|
* measure, or otherwise use the text in the string.
|
||
|
* GetTextAndEncodingFromCFString is a utility that may be helpful
|
||
|
* to do this, in some circumstances. The Carbon toolbox uses this
|
||
|
* API itself when translating CFStrings to Pascal strings.
|
||
|
* GetTextAndEncodingFromCFString attempts to convert the Unicode
|
||
|
* characters in the string to the closest non-Unicode
|
||
|
* representation of the string. For example, a string containing
|
||
|
* only Unicode characters that are present in the MacRoman one-byte
|
||
|
* encoding will be translated to MacRoman, and
|
||
|
* kTextEncodingMacRoman will be returned as the encoding of the
|
||
|
* text. A string containing Unicode characters that are present in
|
||
|
* the MacJapanese two-byte encoding will be translated to
|
||
|
* MacJapanese (Shift-JIS), and kTextEncodingMacJapanese will be
|
||
|
* returned as the encoding of the text.
|
||
|
* GetTextAndEncodingFromCFString is designed to be used for simple
|
||
|
* strings which contain only text from a single language. It is not
|
||
|
* designed to translate strings with multiple runs of text from
|
||
|
* different languages, and will only return the first run of such a
|
||
|
* string; for example, if you pass it a string containing a run of
|
||
|
* Roman characters followed by a run of Japanese characters, it
|
||
|
* will only return the Roman characters in the output buffer. For
|
||
|
* more complex text translation, you should call the Unicode
|
||
|
* converter directly (see ConvertFromUnicodeToTextRun, which
|
||
|
* GetTextAndEncodingFromCFString uses internally).
|
||
|
*
|
||
|
* Parameters:
|
||
|
*
|
||
|
* inString:
|
||
|
* The string to convert.
|
||
|
*
|
||
|
* outText:
|
||
|
* The output buffer in which to place the converted text.
|
||
|
*
|
||
|
* inTextMaxLength:
|
||
|
* The length in bytes of the input buffer.
|
||
|
*
|
||
|
* outTextLength:
|
||
|
* On exit, contains the length in bytes of the text that was
|
||
|
* placed into the output buffer.
|
||
|
*
|
||
|
* outEncoding:
|
||
|
* On exit, contains the encoding of the text that was placed into
|
||
|
* the output buffer.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: in CarbonLib 1.2.5 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSStatus )
|
||
|
GetTextAndEncodingFromCFString(
|
||
|
CFStringRef inString,
|
||
|
BytePtr outText,
|
||
|
ByteCount inTextMaxLength,
|
||
|
ByteCount * outTextLength,
|
||
|
TextEncoding * outEncoding); /* can be NULL */
|
||
|
|
||
|
|
||
|
|
||
|
#ifdef PRAGMA_IMPORT_OFF
|
||
|
#pragma import off
|
||
|
#elif PRAGMA_IMPORT
|
||
|
#pragma import reset
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* __HITEXTUTILS__ */
|
||
|
|