Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
font.h
Abstract:
This module contains the data structures, data types, and procedures related to fonts.
Author:
Therese Stowell (thereses) 15-Jan-1991
Revision History:
--*/
#ifndef FONT_H
#define FONT_H
#define INITIAL_FONTS 20
#define FONT_INCREMENT 3
#define CONSOLE_MAX_FONT_NAME_LENGTH 256
#define EF_NEW 0x0001 // a newly available face
#define EF_OLD 0x0002 // a previously available face
#define EF_ENUMERATED 0x0004 // all sizes have been enumerated
#define EF_OEMFONT 0x0008 // an OEM face
#define EF_TTFONT 0x0010 // a TT face
#define EF_DEFFACE 0x0020 // the default face
#if defined(FE_SB)
#define EF_DBCSFONT 0x0040 // the DBCS font
#endif
/*
* FONT_INFO * * The distinction between the desired and actual font dimensions obtained * is important in the case of TrueType fonts, in which there is no guarantee * that what you ask for is what you will get. * * Note that the correspondence between "Desired" and "Actual" is broken * whenever the user changes his display driver, because GDI uses driver * parameters to control the font rasterization. * * The SizeDesired is {0, 0} if the font is a raster font. */ typedef struct _FONT_INFO { HFONT hFont; COORD Size; // font size obtained
COORD SizeWant; // 0;0 if Raster font
LONG Weight; LPTSTR FaceName; BYTE Family; #if defined(FE_SB)
BYTE tmCharSet; #endif
} FONT_INFO, *PFONT_INFO;
typedef struct tagFACENODE { struct tagFACENODE *pNext; DWORD dwFlag; TCHAR atch[]; } FACENODE, *PFACENODE;
#define TM_IS_TT_FONT(x) (((x) & TMPF_TRUETYPE) == TMPF_TRUETYPE)
#define IS_BOLD(w) ((w) >= FW_SEMIBOLD)
#define SIZE_EQUAL(s1, s2) (((s1).X == (s2).X) && ((s1).Y == (s2).Y))
#define POINTS_PER_INCH 72
#define MIN_PIXEL_HEIGHT 5
#define MAX_PIXEL_HEIGHT 72
//
// Function prototypes
//
VOID InitializeFonts(VOID);
VOID DestroyFonts(VOID);
NTSTATUS EnumerateFonts(DWORD Flags);
#if !defined(FE_SB)
int FindCreateFont( DWORD Family, LPTSTR ptszFace, COORD Size, LONG Weight); #else
int FindCreateFont( DWORD Family, LPTSTR ptszFace, COORD Size, LONG Weight, UINT CodePage); #endif
BOOL DoFontEnum( HDC hDC, LPTSTR ptszFace, PSHORT pTTPoints, UINT nTTPoints);
#endif /* !FONT_H */
|