windows-nt/Source/XPSP1/NT/shell/osshell/control/t1instal/encoding.h
2020-09-26 16:20:57 +08:00

151 lines
4.1 KiB
C

/***
**
** Module: Encoding
**
** Description:
** This is a module of the T1 to TT font converter. The module
** contains interface functions for the global encoding table,
** i.e. this is an abstract data type.
**
** Author: Michael Jansson
**
** Created: 6/13/93
**
***/
#ifndef _ARGS
# define IN const
# define OUT
# define INOUT
# define _ARGS(arg) arg
#endif
#define ENC_UNICODE (USHORT)0 /* Unicode */
#define ENC_MSWINDOWS (USHORT)1 /* Microsoft Windows UGL sub-set encoding. */
#define ENC_STANDARD (USHORT)2 /* Postscript Standard Encoding */
#define ENC_MACCODES (USHORT)3 /* Mac encoding. */
#define ENC_MAXCODES (USHORT)4
#define NOTDEFCODE (USHORT)0xffff /* 0xfffff is not a vaild code point so use
it for the .notdef character. */
#define NOTDEFINIT 0xffffffffL /* Used to init encoding arrays. */
#define NOTDEFGLYPH (USHORT)0 /* Glyph zero must be the notdef glyph. */
#define NULLGLYPH (USHORT)1 /* Glyph one must be the null glyph. */
/***
** Function: LookupNotDef
**
** Description:
** look up a the .notdef character
***/
const struct encoding *LookupNotDef _ARGS((void));
/***
** Function: LookupPSName
**
** Description:
** Do a binary search for a postscript name, and return
** a handle that can be used to look up a the character
** code for a specific encoding schema.
***/
struct encoding *LookupPSName _ARGS((IN struct encoding *table,
INOUT USHORT size,
IN char *name));
/***
** Function: LookupCharName
**
** Description:
** look up a the character name for a
** specific encoding scheme.
***/
const char *LookupCharName _ARGS((IN struct encoding *enc));
/***
** Function: LookupCharCode
**
** Description:
** look up a the character code for a
** specific encoding scheme.
***/
USHORT LookupCharCode _ARGS((IN struct encoding *enc,
IN USHORT type));
/***
** Function: DecodeChar
**
** Description:
** look up an encoding record for a character code in some
** known encoding.
***/
const struct encoding *DecodeChar _ARGS((IN struct encoding *table,
IN USHORT size,
IN USHORT type,
IN USHORT code));
/***
** Function: AllocEncodingTable
**
** Description:
** Create a new encoding ADT.
***/
struct encoding *AllocEncodingTable _ARGS((IN USHORT num));
/***
** Function: SetEncodingEntry
**
** Description:
** Set the mapping from a glyph name to character
** codes for various platforms.
***/
void SetEncodingEntry _ARGS((INOUT struct encoding *,
IN USHORT entry,
IN char *name,
IN USHORT max,
IN USHORT *codes));
/***
** Function: RehashEncodingTable
**
** Description:
** Prepare an encoding ADT so that entries can be
** located in it.
***/
void RehashEncodingTable _ARGS((INOUT struct encoding *,
IN USHORT num));
/***
** Function: FreeEncoding
**
** Description:
** Deallocate memory associated to the encoding array.
***/
void FreeEncoding _ARGS((INOUT struct encoding *,
IN USHORT num));
/***
** Function: LookupFirstEnc
**
** Description:
** Locate the first encoding for a given glyph.
***/
const struct encoding *LookupFirstEnc(const struct encoding *encRoot,
const int encSize,
const struct encoding *encItem);
/***
** Function: LookupNextEnc
**
** Description:
** Locate the first encoding for a given glyph.
***/
const struct encoding *LookupNextEnc(const struct encoding *encRoot,
const int encSize,
const struct encoding *encItem);