For global classes, GetClassInfo now returns a handle to USER.
[wine] / include / font.h
1 /*
2  * GDI font definitions
3  *
4  * Copyright 1994 Alexandre Julliard
5  */
6
7 #ifndef __WINE_FONT_H
8 #define __WINE_FONT_H
9
10 #include "gdi.h"
11
12 #include "pshpack1.h"
13
14   /* GDI logical font object */
15 typedef struct
16 {
17     GDIOBJHDR   header;
18     LOGFONTW    logfont;
19 } FONTOBJ;
20
21 typedef struct {
22     WORD        dfVersion;
23     DWORD       dfSize;
24     CHAR        dfCopyright[60];
25     WORD        dfType;
26     WORD        dfPoints;
27     WORD        dfVertRes;
28     WORD        dfHorizRes;
29     WORD        dfAscent;
30     WORD        dfInternalLeading;
31     WORD        dfExternalLeading;
32     BYTE        dfItalic;
33     BYTE        dfUnderline;
34     BYTE        dfStrikeOut;
35     WORD        dfWeight;
36     BYTE        dfCharSet;
37     WORD        dfPixWidth;
38     WORD        dfPixHeight;
39     BYTE        dfPitchAndFamily;
40     WORD        dfAvgWidth;
41     WORD        dfMaxWidth;
42     BYTE        dfFirstChar;
43     BYTE        dfLastChar;
44     BYTE        dfDefaultChar;
45     BYTE        dfBreakChar;
46     WORD        dfWidthBytes;
47     DWORD       dfDevice;
48     DWORD       dfFace;
49     DWORD       dfReserved;
50     CHAR        szDeviceName[60]; /* FIXME: length unknown */
51     CHAR        szFaceName[60];   /* dito */
52 } FONTDIR16, *LPFONTDIR16;
53
54 #include "poppack.h"
55
56 #define FONTCACHE       32      /* dynamic font cache size */
57
58 extern BOOL FONT_Init( UINT16* pTextCaps );
59 extern INT16  FONT_GetObject16( FONTOBJ * font, INT16 count, LPSTR buffer );
60 extern INT  FONT_GetObjectA( FONTOBJ * font, INT count, LPSTR buffer );
61 extern INT  FONT_GetObjectW( FONTOBJ * font, INT count, LPSTR buffer );
62 extern void FONT_LogFontATo16( const LOGFONTA* font32, LPLOGFONT16 font16 );
63 extern void FONT_LogFontWTo16( const LOGFONTW* font32, LPLOGFONT16 font16 );
64 extern void FONT_LogFont16ToA( const LOGFONT16* font16, LPLOGFONTA font32 );
65 extern void FONT_LogFont16ToW( const LOGFONT16* font16, LPLOGFONTW font32 );
66 extern void FONT_TextMetricATo16(const TEXTMETRICA *ptm32, LPTEXTMETRIC16 ptm16 );
67 extern void FONT_TextMetricWTo16(const TEXTMETRICW *ptm32, LPTEXTMETRIC16 ptm16 );
68 extern void FONT_TextMetric16ToA(const TEXTMETRIC16 *ptm16, LPTEXTMETRICA ptm32 );
69 extern void FONT_TextMetric16ToW(const TEXTMETRIC16 *ptm16, LPTEXTMETRICW ptm32 );
70 extern void FONT_TextMetricAToW(const TEXTMETRICA *ptm32A, LPTEXTMETRICW ptm32W );
71 extern void FONT_NewTextMetricEx16ToW(const NEWTEXTMETRICEX16*, LPNEWTEXTMETRICEXW);
72 extern void FONT_EnumLogFontEx16ToW(const ENUMLOGFONTEX16*, LPENUMLOGFONTEXW);
73
74 extern LPWSTR FONT_mbtowc(HDC, LPCSTR, INT, INT*, UINT*);
75
76 extern DWORD WineEngAddRefFont(GdiFont);
77 extern GdiFont WineEngCreateFontInstance(HFONT);
78 extern DWORD WineEngDecRefFont(GdiFont);
79 extern DWORD WineEngEnumFonts(LPLOGFONTW, DEVICEFONTENUMPROC, LPARAM);
80 extern BOOL WineEngGetCharWidth(GdiFont, UINT, UINT, LPINT);
81 extern DWORD WineEngGetFontData(GdiFont, DWORD, DWORD, LPVOID, DWORD);
82 extern DWORD WineEngGetGlyphOutline(GdiFont, UINT glyph, UINT format,
83                                     LPGLYPHMETRICS, DWORD buflen, LPVOID buf,
84                                     const MAT2*);
85 extern UINT WineEngGetOutlineTextMetrics(GdiFont, UINT, LPOUTLINETEXTMETRICW);
86 extern BOOL WineEngGetTextExtentPoint(GdiFont, LPCWSTR, INT, LPSIZE);
87 extern BOOL WineEngGetTextMetrics(GdiFont, LPTEXTMETRICW);
88 extern BOOL WineEngInit(void);
89
90 #endif /* __WINE_FONT_H */