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.
115 lines
2.5 KiB
115 lines
2.5 KiB
/*++
|
|
|
|
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 */
|