Leaked source code of windows server 2003
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.
 
 
 
 
 
 

281 lines
5.6 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
xltext.h
Abstract:
PCL XL Font related data structures
Environment:
Windows Whistler
Revision History:
03/23/00
Created it.
--*/
#ifndef _XLTEXT_H_
#define _XLTEXT_H_
//
// Downloading Soft Fonts in PCL XL 2.0
//
//
// Downloading Font Headers
//
//
// The PCL XL 2.0 Format 0 Font Header
//
//
// Orientation is defined in pclxle.h
//
//
// Font Scaling Technology
//
typedef enum {
eTrueType = 1,
eBitmap = 254
} FontScale;
//
// Mapping
//
typedef enum {
eUnicode = 590,
eWin31Latin1 = 629,
eWin31JDBCS = 619,
eGB2312_1980 = 579,
eBig5 = 596,
eKS_C5601_1987 = 616
} Mapping;
typedef struct _PCLXL_FONTHEADER {
BYTE ubFormat;
BYTE ubOrientation;
WORD wMapping;
BYTE ubFontScallingTech;
BYTE ubVariety;
WORD wNumOfChars;
} PCLXL_FONTHEADER, *PPCLXL_FONTHEADER;
//
// Font Data Segment
//
//
// The BR Segment (Bitmap Resolution Segment) (Bitmap Fonts Only)
//
#define PCLXL_BR_SIGNATURE 'RB'
#define PCLXL_BR_SEGMENT_SIZE 4
#define PCLXL_BR_RESOLUTION_300 300
#define PCLXL_BR_RESOLUTION_600 600
#define PCLXL_BR_RESOLUTION_1200 1200
typedef struct _PCLXL_BR_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
WORD wXResolution;
WORD wYResolution;
} PCLXL_BR_SEGMENT, *PPCLXL_BR_SEGMENT;
//
// The GC Segment (Galley Character Segment) (TrueType Fonts Only)
//
typedef struct _PCLXL_GC_REGION {
WORD UpperLeftCharCode;
WORD LowerRightCharCode;
WORD GalleyChar;
} PCLXL_GC_REGION, *PPCLXL_GC_REGION;
#define PCLXL_GC_SIGNATURE 'CG'
#define PCLXL_GC_SEGMENT_HEAD_SIZE 6
typedef struct _PCLXL_GC_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
WORD wFormat;
WORD wDefaultGalleyCharacter;
WORD wNumberOfRegions;
PCLXL_GC_REGION Region[1];
} PCLXL_GC_SEGMENT, *PPCLXL_GC_SEGMENT;
//
// The GT Segment (Global TrueType Segment) (TrueType Fonts Only)
//
typedef struct _PCLXL_GT_TABLE_DIR {
DWORD dwTableTag;
DWORD dwTableCheckSum;
DWORD dwTableOffset;
DWORD dwTableSize;
} PCLXL_GT_TABLE_DIR, PPCLXL_GT_TABLE_DIR;
#define PCLXL_GT_SIGNATURE 'TG'
typedef struct _PCLXL_GT_SEGMENT {
WORD wSignature;
WORD wSegmentSize1;
WORD wSegmentSize2;
} PCLXL_GT_SEGMENT, *PPCLXL_GT_SEGMENT;
typedef struct _PCLXL_GT_TABLE_DIR_HEADER {
DWORD dwSFNTVersion;
WORD wNumOfTables;
WORD wSearchRange;
WORD wEntrySelector;
WORD wRangeShift;
} PCLXL_GT_TABLE_DIR_HEADER, *PPCLXL_GT_TABLE_DIR_HEADER;
//
// The NULL Segment
//
#define PCLXL_NULL_SIGNATURE 0xFFFF
typedef struct _PCLXL_NULL_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
} PCLXL_NULL_SEGMENT, *PPCLXL_NULL_SEGMENT;
//
// The VE Segment (Vertical Exclude Segment) (Vertical TrueType Fonts Only)
//
typedef struct _PCLXL_VE_RANGE {
WORD RangeFirstCode;
WORD RangeLastCode;
} PCLXL_VE_RANGE, *PPCLXL_VE_RANGE;
#define PCLXL_VE_SIGNATURE 'EV'
typedef struct _PCLXL_VE_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
WORD wFormat;
WORD wNumberOfRanges;
PCLXL_VE_RANGE Range[1];
} PCLXL_VE_SEGMENT, *PPCLXL_VE_SEGMENT;
//
// The VI Segment (Vendor Information Segment)
//
#define PCLXL_VI_SIGNATURE 'IV'
typedef struct _PCLXL_VI_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
} PCLXL_VI_SEGMENT, *PPCLXL_VI_SEGMENT;
//
// The VR Segment (Vertical Rotation Segment) (Vertical TrueType Fonts Only)
//
#define PCLXL_VR_SIGNATURE 'RV'
typedef struct _PCLXL_VR_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
WORD wFormat;
SHORT sTypoDescender;
} PCLXL_VR_SEGMENT, *PPCLXL_VR_SEGMENT;
//
// The VT Segment (Vertical Transformation Segment)
// (Vertical TrueType Fonts with Substitutes Only)
//
typedef struct _PCLXL_VT_GLYPH {
WORD wHorizontalGlyphID;
WORD wVerticalSubstituteGlyphID;
} PCLXL_VT_GLYPH, *PPCLXL_VT_GLYPH;
#define PCLXL_VT_SIGNATURE 'TV'
typedef struct _PCLXL_VT_SEGMENT {
WORD wSignature;
WORD wSegmentSize;
WORD wSegmentSizeAlign;
PCLXL_VT_GLYPH GlyphTable[1];
} PCLXL_VT_SEGMENT, *PPCLXL_VT_SEGMENT;
//
// Downloading Characters
//
//
// Bitmap Characters Format 0
//
typedef struct _PCLXL_BITMAP_CHAR {
BYTE ubFormat;
BYTE ubClass;
WORD wLeftOffset;
WORD wTopOffset;
WORD wCharWidth;
WORD wCharHeight;
} PCLXL_BITMAP_CHAR, *PPCLXL_BITMAP_CHAR;
//
// TrueType Glyphs Format 1 Class 0
//
typedef struct _PCLXL_TRUETYPE_CHAR_C0 {
BYTE ubFormat;
BYTE ubClass;
WORD wCharDataSize;
WORD wTrueTypeGlyphID;
} PCLXL_TRUETYPE_CHAR_C0, *PPCLXL_TRUETYPE_CHAR_C0;
//
// TrueType Glyphs Format 1 Class 1
//
typedef struct _PCLXL_TRUETYPE_CHAR_C1 {
BYTE ubFormat;
BYTE ubClass;
WORD wCharDataSize;
WORD wLeftSideBearing;
WORD wAdvanceWidth;
WORD wTrueTypeGlyphID;
} PCLXL_TRUETYPE_CHAR_C1, *PPCLXL_TRUETYPE_CHAR_C1;
//
// TrueType Glyphs Format 1 Class 2
//
typedef struct _PCLXL_TRUETYPE_CHAR_C2 {
BYTE ubFormat;
BYTE ubClass;
WORD wCharDataSize;
WORD wLeftSideBearing;
WORD wAdvanceWidth;
WORD wTopSideBearing;
WORD wTrueTypeGlyphID;
} PCLXL_TRUETYPE_CHAR_C2, *PPCLXL_TRUETYPE_CHAR_C2;
#endif // _XLTEXT_H_