- Remove svn:needs-lock, svn:eol-type, and svn:eol-tyle properties.
[reactos.git] / reactos / lib / 3rdparty / freetype / src / winfonts / winfnt.h
1 /***************************************************************************/
2 /* */
3 /* winfnt.h */
4 /* */
5 /* FreeType font driver for Windows FNT/FON files */
6 /* */
7 /* Copyright 1996-2001, 2002, 2003, 2004, 2007 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* Copyright 2007 Dmitry Timoshkov for Codeweavers */
10 /* */
11 /* This file is part of the FreeType project, and may only be used, */
12 /* modified, and distributed under the terms of the FreeType project */
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14 /* this file you indicate that you have read the license and */
15 /* understand and accept it fully. */
16 /* */
17 /***************************************************************************/
18
19
20 #ifndef __WINFNT_H__
21 #define __WINFNT_H__
22
23
24 #include <ft2build.h>
25 #include FT_WINFONTS_H
26 #include FT_INTERNAL_DRIVER_H
27
28
29 FT_BEGIN_HEADER
30
31 typedef struct WinMZ_HeaderRec_
32 {
33 FT_UShort magic;
34 /* skipped content */
35 FT_UShort lfanew;
36
37 } WinMZ_HeaderRec;
38
39
40 typedef struct WinNE_HeaderRec_
41 {
42 FT_UShort magic;
43 /* skipped content */
44 FT_UShort resource_tab_offset;
45 FT_UShort rname_tab_offset;
46
47 } WinNE_HeaderRec;
48
49
50 typedef struct WinPE32_HeaderRec_
51 {
52 FT_ULong magic;
53 FT_UShort machine;
54 FT_UShort number_of_sections;
55 /* skipped content */
56 FT_UShort size_of_optional_header;
57 /* skipped content */
58 FT_UShort magic32;
59 /* skipped content */
60 FT_ULong rsrc_virtual_address;
61 FT_ULong rsrc_size;
62 /* skipped content */
63
64 } WinPE32_HeaderRec;
65
66
67 typedef struct WinPE32_SectionRec_
68 {
69 FT_Byte name[8];
70 /* skipped content */
71 FT_ULong virtual_address;
72 FT_ULong size_of_raw_data;
73 FT_ULong pointer_to_raw_data;
74 /* skipped content */
75
76 } WinPE32_SectionRec;
77
78
79 typedef struct WinPE_RsrcDirRec_
80 {
81 FT_ULong characteristics;
82 FT_ULong time_date_stamp;
83 FT_UShort major_version;
84 FT_UShort minor_version;
85 FT_UShort number_of_named_entries;
86 FT_UShort number_of_id_entries;
87
88 } WinPE_RsrcDirRec;
89
90
91 typedef struct WinPE_RsrcDirEntryRec_
92 {
93 FT_ULong name;
94 FT_ULong offset;
95
96 } WinPE_RsrcDirEntryRec;
97
98
99 typedef struct WinPE_RsrcDataEntryRec_
100 {
101 FT_ULong offset_to_data;
102 FT_ULong size;
103 FT_ULong code_page;
104 FT_ULong reserved;
105
106 } WinPE_RsrcDataEntryRec;
107
108
109 typedef struct WinNameInfoRec_
110 {
111 FT_UShort offset;
112 FT_UShort length;
113 FT_UShort flags;
114 FT_UShort id;
115 FT_UShort handle;
116 FT_UShort usage;
117
118 } WinNameInfoRec;
119
120
121 typedef struct WinResourceInfoRec_
122 {
123 FT_UShort type_id;
124 FT_UShort count;
125
126 } WinResourceInfoRec;
127
128
129 #define WINFNT_MZ_MAGIC 0x5A4D
130 #define WINFNT_NE_MAGIC 0x454E
131 #define WINFNT_PE_MAGIC 0x4550
132
133
134 typedef struct FNT_FontRec_
135 {
136 FT_ULong offset;
137
138 FT_WinFNT_HeaderRec header;
139
140 FT_Byte* fnt_frame;
141 FT_ULong fnt_size;
142 FT_String* family_name;
143
144 } FNT_FontRec, *FNT_Font;
145
146
147 typedef struct FNT_FaceRec_
148 {
149 FT_FaceRec root;
150 FNT_Font font;
151
152 FT_CharMap charmap_handle;
153 FT_CharMapRec charmap; /* a single charmap per face */
154
155 } FNT_FaceRec, *FNT_Face;
156
157
158 FT_EXPORT_VAR( const FT_Driver_ClassRec ) winfnt_driver_class;
159
160
161 FT_END_HEADER
162
163
164 #endif /* __WINFNT_H__ */
165
166
167 /* END */