- Get rid of duplicated (and different) NB_LAST_STOCK definitions in gdi32 and win32k...
[reactos.git] / reactos / dll / win32 / gdi32 / include / gdi32p.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/gdi32/include/gdi32p.h
5 * PURPOSE: User-Mode Win32 GDI Library Private Header
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
7 */
8
9
10 /* DATA **********************************************************************/
11
12 extern PGDI_TABLE_ENTRY GdiHandleTable;
13 extern PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable;
14 extern HANDLE hProcessHeap;
15 extern HANDLE CurrentProcessId;
16 extern DWORD GDI_BatchLimit;
17 extern PDEVCAPS GdiDevCaps;
18
19 typedef INT
20 (CALLBACK* EMFPLAYPROC)(
21 HDC hdc,
22 INT iFunction,
23 HANDLE hPageQuery
24 );
25
26 /* DEFINES *******************************************************************/
27
28 #define HANDLE_LIST_INC 20
29
30 #define METAFILE_MEMORY 1
31 #define METAFILE_DISK 2
32
33 /* TYPES *********************************************************************/
34
35 // Based on wmfapi.h and Wine.
36 typedef struct tagMETAFILEDC {
37 PVOID pvMetaBuffer;
38 HANDLE hFile;
39 DWORD Size;
40 METAHEADER mh;
41 UINT handles_size, cur_handles;
42 HGDIOBJ *handles;
43
44 // more DC object stuff.
45 HGDIOBJ Pen;
46 HGDIOBJ Brush;
47 HGDIOBJ Palette;
48 HGDIOBJ Font;
49
50 WCHAR Filename[MAX_PATH+2];
51 // Add more later.
52 } METAFILEDC,*PMETAFILEDC;
53
54 // Metafile Entry handle
55 typedef struct tagMF_ENTRY {
56 LIST_ENTRY List;
57 HGDIOBJ hmDC; // Handle return from NtGdiCreateClientObj.
58 PMETAFILEDC pmfDC;
59 } MF_ENTRY, *PMF_ENTRY;
60
61 typedef struct tagENHMETAFILE {
62 PVOID pvMetaBuffer;
63 HANDLE hFile; /* Handle for disk based MetaFile */
64 DWORD Size;
65 INT iType;
66 PENHMETAHEADER emf;
67 UINT handles_size, cur_handles;
68 HGDIOBJ *handles;
69 INT horzres, vertres;
70 INT horzsize, vertsize;
71 INT logpixelsx, logpixelsy;
72 INT bitspixel;
73 INT textcaps;
74 INT rastercaps;
75 INT technology;
76 INT planes;
77 } ENHMETAFILE,*PENHMETAFILE;
78
79 /* FUNCTIONS *****************************************************************/
80
81 PVOID
82 HEAP_alloc(DWORD len);
83
84 NTSTATUS
85 HEAP_strdupA2W(
86 LPWSTR* ppszW,
87 LPCSTR lpszA
88 );
89
90 VOID
91 HEAP_free(LPVOID memory);
92
93 BOOL
94 FASTCALL
95 TextMetricW2A(
96 TEXTMETRICA *tma,
97 TEXTMETRICW *tmw
98 );
99
100 BOOL
101 FASTCALL
102 NewTextMetricW2A(
103 NEWTEXTMETRICA *tma,
104 NEWTEXTMETRICW *tmw
105 );
106
107 BOOL
108 FASTCALL
109 NewTextMetricExW2A(
110 NEWTEXTMETRICEXA *tma,
111 NEWTEXTMETRICEXW *tmw
112 );
113
114 BOOL
115 FASTCALL
116 DeleteRegion( HRGN );
117
118 BOOL
119 GdiIsHandleValid(HGDIOBJ hGdiObj);
120
121 BOOL
122 GdiGetHandleUserData(
123 HGDIOBJ hGdiObj,
124 DWORD ObjectType,
125 PVOID *UserData
126 );
127
128 PLDC
129 GdiGetLDC(HDC hDC);
130
131 HGDIOBJ
132 STDCALL
133 GdiFixUpHandle(HGDIOBJ hGO);
134
135 BOOL
136 WINAPI
137 CalculateColorTableSize(
138 CONST BITMAPINFOHEADER *BitmapInfoHeader,
139 UINT *ColorSpec,
140 UINT *ColorTableSize
141 );
142
143 LPBITMAPINFO
144 WINAPI
145 ConvertBitmapInfo(
146 CONST BITMAPINFO *BitmapInfo,
147 UINT ColorSpec,
148 UINT *BitmapInfoSize,
149 BOOL FollowedByData
150 );
151
152 DEVMODEW *
153 NTAPI
154 GdiConvertToDevmodeW(DEVMODEA *dm);
155
156 DWORD
157 STDCALL
158 GetAndSetDCDWord( HDC, INT, DWORD, DWORD, DWORD, DWORD );
159
160 DWORD
161 STDCALL
162 GetDCDWord( HDC, INT, DWORD);
163
164 HGDIOBJ
165 STDCALL
166 GetDCObject( HDC, INT);
167
168 VOID
169 NTAPI
170 LogFontA2W(
171 LPLOGFONTW pW,
172 CONST LOGFONTA *pA
173 );
174
175 VOID
176 NTAPI
177 LogFontW2A(
178 LPLOGFONTA pA,
179 CONST LOGFONTW *pW
180 );
181
182 VOID
183 STDCALL
184 EnumLogFontExW2A(
185 LPENUMLOGFONTEXA fontA,
186 CONST ENUMLOGFONTEXW *fontW );
187
188 /* FIXME: Put in some public header */
189 UINT
190 WINAPI
191 UserRealizePalette(HDC hDC);
192
193 int
194 STDCALL
195 GdiAddFontResourceW(LPCWSTR lpszFilename,FLONG fl,DESIGNVECTOR *pdv);
196
197 VOID
198 STDCALL
199 GdiSetLastError( DWORD dwErrCode );
200
201 /* EOF */
202