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.
|
|
/******************************** MODULE HEADER *****************************
* fontinst.h * Structures used to determine the file layout of files generated * by any font installers, and then read by us. * * HISTORY: * 15:53 on Mon 02 Mar 1992 -by- Lindsay Harris [lindsayh] * First version. * * Copyright (C) 1992 Microsoft Corporation. * ****************************************************************************/
/*
* Define the structure that heads each record in the font installer * files. Basically it contains selection information and offsets * to the remaining data in this record. * This structure is actually written to the file. It is also the header * employed in the font resources in minidrivers - each font has one of these * at the beginning. */
//Reduced from 4 to three as WFontType is added.
//Reducde from three to two when dwETM was added
#define EXP_SIZE 2 /* DWORDS allowed for future expansion */
typedef struct { WORD cjThis; /* Our size, for consistency checking */ WORD wFlags; /* Miscellaneous information */
DWORD dwSelBits; /* Font availability information */
DWORD dwIFIMet; /* Offset to the IFIMETRICS for this font */ DWORD dwCDSelect; /* How to select/deselect this font */ DWORD dwCDDeselect; DWORD dwWidthTab; /* Width vector (proportional font) else 0 */ DWORD dwIdentStr; /* Identification string */
union { short sCTTid; /* Index into CTT data */ DWORD dwCTT; /* Offset here to mapping data of some sort */ } u;
WORD wXRes; /* Resolution used for font metrics numbers */ WORD wYRes; /* Ditto for the y coordinates */
short sYAdjust; /* Adjust Y position before output - for */ /* double height characters on dot matrix */ short sYMoved; /* Cursor has shifted after printing font */
short fCaps; /* Capabilities flags */
WORD wPrivateData; /* Special purpose: e.g. DeskJet permutations */
WORD wFontType; /* Type of Device font */
WORD wReserved; /* reserved for future use */
DWORD dwETM; /* offset to ETM for this font 0 if there are none*/
DWORD dwMBZ[ EXP_SIZE ]; /* Must Be Zero: in case we need space */ } FI_DATA_HEADER;
/*
* The version ID. */
#define FDH_VER 0x100 /* 1.00 in BCD */
/*
* Flags bits. */ #define FDH_SOFT 0x0001 /* Softfont, thus needs downloading */
#define FDH_CART 0x0002 /* This is a cartridge font */
#define FDH_CART_MAIN 0x0004 /* Main (first) entry for this cartridge */
/*
* Selection criteria bits: dwSelBits. These bits are used as * follows. During font installation, the installer set the following * values as appropriate. During initialisation, the driver sets * up a mask of these bits, depending upon the printer's abilities. * For example, the FDH_SCALABLE bit is set only if the printer can * handle scalable fonts. When the fonts are examined to see if * they are usable, the following test is applied: * * (font.dwSelBits & printer.dwSelBits) == font.dwSelBits * * If true, the font is usable. */
#define FDH_LANDSCAPE 0x00000001 /* Font is landscape orientation */
#define FDH_PORTRAIT 0x00000002 /* Font is portrait */
#define FDH_OR_REVERSE 0x00000004 /* 180 degree rotation of above */
#define FDH_BITMAP 0x00000008 /* Bitmap font */
#define FDH_COMPRESSED 0x00000010 /* Data is compressed bitmap */
#define FDH_SCALABLE 0x00000020 /* Font is scalable */
#define FDH_CONTOUR 0x00000040 /* Intellifont contour */
#define FDH_ERROR 0x80000000 /* Set if some error condition */
/*
* The following structure should be returned from the specific * minidriver to the common font installer code. It is used by * the common font installer code to generate the above structure * which is then placed in the font file. */
typedef struct { void *pvData; /* Address of data of importance */ int cBytes; /* Number of bytes in the above */ } DATA_SUM;
typedef struct { DATA_SUM dsIFIMet; /* IFIMETRICS */ DATA_SUM dsSel; /* Selection string/whatever */ DATA_SUM dsDesel; /* Deselection string */ DATA_SUM dsWidthTab; /* Width tables (proportional font) */ DATA_SUM dsCTT; /* Translation data */ DATA_SUM dsIdentStr; /* Identification string (Dialog box etc) */ DATA_SUM dsETM; /* EXTENDED TEXT METRICS */
DWORD dwSelBits; /* Font availability information */
WORD wVersion; /* Version ID */ WORD wFlags; /* Miscellaneous information */
WORD wXRes; /* X resolution of font */ WORD wYRes; /* Y resolution */
short sYAdjust; /* Adjust Y position before output - for */ /* double height characters on dot matrix */ short sYMoved; /* Cursor has shifted after printing font */
WORD fCaps; /* Font/device caps */ WORD wFontType; /* Type of Device font */ WORD wPrivateData; /* Pad to DWORD multiple */ } FI_DATA;
/*
* RELATED FUNCTION PROTOTYPES. */
/*
* The function used to take an FI_DATA structure and write its contents * to the file whose handle is passed in. The data is written out as * an FI_DATA_HEADER structure. */
int iWriteFDH( HANDLE, FI_DATA * );
|