Annotation of ntddk/src/print/lib/fontfile.h, revision 1.1.1.1

1.1       root        1: /*********************** MODULE HEADER ************************************
                      2:  * fontfile.h
                      3:  *      Definitions used in the font file.  This is the file which holds
                      4:  *      information about cartridge and download fonts.  The file format
                      5:  *      is quite basic:  a header for verification; then an array of
                      6:  *      records,  each with a header.  These records contain FONTMAP
                      7:  *      information.  Cartridges have an array of these, one for each
                      8:  *      font.  Finally,  the tail of the file contains extra data, as
                      9:  *      required.  For download fonts,  this would be the download data.
                     10:  *
                     11:  *  Copyright (C) 1992  Microsoft Corporation
                     12:  *
                     13:  ***************************************************************************/
                     14: 
                     15: /*
                     16:  *   The file header.   One of these is located at the beginning of the file.
                     17:  *  The ulVarData field is relative to the beginning of the file.  This
                     18:  *  makes it easier to regenerate the file when fonts are deleted.
                     19:  */
                     20: 
                     21: typedef  struct
                     22: {
                     23:     ULONG   ulID;               /* ID info - see value below */
                     24:     ULONG   ulVersion;          /* Version information - see below */
                     25:     ULONG   ulFixData;          /* Start of FF_REC_HEADER array */
                     26:     ULONG   ulFixSize;          /* Number of bytes in fixed section */
                     27:     ULONG   ulRecCount;         /* Number of records in fixed part */
                     28:     ULONG   ulVarData;          /* Start of variable data, rel to 0 */
                     29:     ULONG   ulVarSize;          /* Numbier of bytes in variable portion */
                     30: }  FF_HEADER;
                     31: 
                     32: /*
                     33:  *   Values for the ID and Version fields.
                     34:  */
                     35: 
                     36: #define FF_ID           0x6c666e66              /* "fnfl" - fOnTfIlE */
                     37: #define FF_VERSION      1                       /* Start at the bottom */
                     38: 
                     39: /*
                     40:  *   Each entry in the file starts with the following header.  Typically
                     41:  * there will be one of these for a softfont, and one per cartridge.
                     42:  * In the case of a cartridge,  there will be an array of these, within
                     43:  * the master entry.  Each sub-entry will be for one specific font.
                     44:  *
                     45:  *   Note that there is a dummy entry at the end.  This contains a 0
                     46:  * in the ulSize field - it is to mark the last one,  and makes it
                     47:  * easier to manipulate the file.
                     48:  */
                     49: 
                     50: typedef  struct
                     51: {
                     52:     ULONG   ulRID;              /* Record ID */
                     53:     ULONG   ulNextOff;          /* Offset from here to next record: 0 == end */
                     54:     ULONG   ulSize;             /* Bytes in this record */
                     55:     ULONG   ulVarOff;           /* Offset from start of variable data */
                     56:     ULONG   ulVarSize;          /* Number of bytes in variable part */
                     57: }  FF_REC_HEADER;
                     58: 
                     59: #define FR_ID           0x63657266              /* "frec" - fONT recORD */
                     60: 
                     61: /*
                     62:  *   Define the file extensions used.  The first is the name of the
                     63:  * font installer file;  the others are temporaries used during update
                     64:  * of the (possibly) existing file.
                     65:  */
                     66: 
                     67: 
                     68: #define  FILE_FONTS     L"fi_"           /* "Existing" single file */
                     69: #define  TFILE_FIX      L"fiX"           /* Fixed part of file */
                     70: #define  TFILE_VAR      L"fiV"           /* Variable (optional) portion */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.