source: trunk/include/win/win16drv.h@ 10367

Last change on this file since 10367 was 4, checked in by ktk, 26 years ago

Import

File size: 7.2 KB
Line 
1/* $Id: win16drv.h,v 1.1 1999-05-24 20:19:21 ktk Exp $ */
2
3/*
4 * Win16 printer driver definitions
5 */
6
7#ifndef __WINE_WIN16DRV_H
8#define __WINE_WIN16DRV_H
9
10#include "wingdi.h"
11#include "gdi.h"
12
13#define SETHIGHBIT
14#undef SETHIGHBIT
15#ifdef SETHIGHBIT
16#define GETGDIINFO 0x8001
17#define INITPDEVICE 0x8000
18#else
19#define GETGDIINFO 0x0001
20#define INITPDEVICE 0x0000
21#endif
22
23#define OS_ARC 3
24#define OS_SCANLINES 4
25#define OS_RECTANGLE 6
26#define OS_ELLIPSE 7
27#define OS_MARKER 8
28#define OS_POLYLINE 18
29#define OS_ALTPOLYGON 22
30#define OS_WINDPOLYGON 20
31#define OS_PIE 23
32#define OS_POLYMARKER 24
33#define OS_CHORD 39
34#define OS_CIRCLE 55
35#define OS_ROUNDRECT 72
36
37/* Internal Data */
38#define ORD_BITBLT 1
39#define ORD_COLORINFO 2
40#define ORD_CONTROL 3
41#define ORD_DISABLE 4
42#define ORD_ENABLE 5
43#define ORD_ENUMDFONTS 6
44#define ORD_ENUMOBJ 7
45#define ORD_OUTPUT 8
46#define ORD_PIXEL 9
47#define ORD_REALIZEOBJECT 10
48#define ORD_STRBLT 11
49#define ORD_SCANLR 12
50#define ORD_DEVICEMODE 13
51#define ORD_EXTTEXTOUT 14
52#define ORD_GETCHARWIDTH 15
53#define ORD_DEVICEBITMAP 16
54#define ORD_FASTBORDER 17
55#define ORD_SETATTRIBUTE 18
56
57#define ORD_STRETCHBLT 27
58#define ORD_STRETCHDIBITS 28
59#define ORD_SELECTBITMAP 29
60#define ORD_BITMAPBITS 30
61
62#define ORD_EXTDEVICEMODE 90
63#define ORD_DEVICECAPABILITIES 91
64#define ORD_ADVANCEDSETUPDIALOG 93
65
66#define ORD_DIALOGFN 100
67#define ORD_PSEUDOEDIT 101
68
69enum {
70 FUNC_BITBLT = 0,
71 FUNC_COLORINFO,
72 FUNC_CONTROL,
73 FUNC_DISABLE,
74 FUNC_ENABLE,
75 FUNC_ENUMDFONTS,
76 FUNC_ENUMOBJ,
77 FUNC_OUTPUT,
78 FUNC_PIXEL,
79 FUNC_REALIZEOBJECT,
80 FUNC_STRBLT,
81 FUNC_SCANLR,
82 FUNC_DEVICEMODE,
83 FUNC_EXTTEXTOUT,
84 FUNC_GETCHARWIDTH,
85 FUNC_DEVICEBITMAP,
86 FUNC_FASTBORDER,
87 FUNC_SETATTRIBUTE,
88 FUNC_STRETCHBLT,
89 FUNC_STRETCHDIBITS,
90 FUNC_SELECTBITMAP,
91 FUNC_BITMAPBITS,
92 FUNC_EXTDEVICEMODE,
93 FUNC_DEVICECAPABILITIES,
94 FUNC_ADVANCEDSETUPDIALOG,
95 FUNC_DIALOGFN,
96 FUNC_PSEUDOEDIT,
97 TOTAL_PRINTER_DRIVER_FUNCTIONS /* insert functions before here */
98};
99
100typedef struct
101{
102 LPSTR szDriver; /* Driver name eg EPSON */
103 HINSTANCE16 hInst; /* Handle for driver */
104 WORD ds_reg; /* DS of driver */
105 FARPROC16 fn[TOTAL_PRINTER_DRIVER_FUNCTIONS]; /* Printer functions */
106 int nUsageCount; /* Usage count, unload == 0 */
107 int nIndex; /* Index in global driver array */
108} LOADED_PRINTER_DRIVER;
109
110typedef struct PDEVICE_HEADER
111{
112 LOADED_PRINTER_DRIVER *pLPD; /* Associated printer driver */
113} PDEVICE_HEADER;
114
115#include "pshpack1.h"
116#define PCOLOR DWORD
117typedef struct DRAWMODE
118{
119 SHORT Rop2;
120 SHORT bkMode;
121 PCOLOR bkColor;
122 PCOLOR TextColor;
123 SHORT TBreakExtra;
124 SHORT BreakExtra;
125 SHORT BreakErr;
126 SHORT BreakRem;
127 SHORT BreakCount;
128 SHORT CharExtra;
129 COLORREF LbkColor;
130 COLORREF LTextColor;
131} DRAWMODE, *LPDRAWMODE;
132
133
134#include "poppack.h"
135
136typedef struct WINE_ENUM_PRINTER_FONT_CALLBACK
137{
138 int (*proc)(LPENUMLOGFONT16, LPNEWTEXTMETRIC16, UINT16, LPARAM);
139 LPARAM lp;
140} WEPFC;
141
142#define DRVOBJ_PEN 1
143#define DRVOBJ_BRUSH 2
144#define DRVOBJ_FONT 3
145#define DRVOBJ_PBITMAP 5
146
147/* Win16 printer driver physical DC */
148typedef struct
149{
150 SEGPTR segptrPDEVICE; /* PDEVICE used by 16 bit printer drivers */
151 LOGFONT16 lf; /* Current font details */
152 TEXTMETRIC16 tm; /* Current font metrics */
153 LPFONTINFO16 FontInfo; /* Current font realized by printer driver */
154 LPLOGBRUSH16 BrushInfo; /* Current brush realized by printer driver */
155 LPLOGPEN16 PenInfo; /* Current pen realized by printer driver */
156} WIN16DRV_PDEVICE;
157
158/*
159 * Printer driver functions
160 */
161typedef SEGPTR LPPDEVICE;
162LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver);
163
164extern INT16 PRTDRV_Control(LPPDEVICE lpDestDev, WORD wfunction, SEGPTR lpInData, SEGPTR lpOutData);
165extern WORD PRTDRV_Enable(LPVOID lpDevInfo, WORD wStyle, LPCSTR lpDestDevType,
166 LPCSTR lpDeviceName, LPCSTR lpOutputFile, LPVOID lpData);
167extern WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName,
168 FARPROC16 lpCallbackFunc, LPVOID lpClientData);
169extern DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle,
170 LPVOID lpInObj, LPVOID lpOutObj,
171 SEGPTR lpTextXForm);
172
173extern BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle, FARPROC16 lpfn, LPVOID lpb);
174extern DWORD PRTDRV_ExtTextOut(LPPDEVICE lpDestDev, WORD wDestXOrg, WORD wDestYOrg,
175 RECT16 *lpClipRect, LPCSTR lpString, WORD wCount,
176 LPFONTINFO16 lpFontInfo, SEGPTR lpDrawMode,
177 SEGPTR lpTextXForm, SHORT *lpCharWidths,
178 RECT16 * lpOpaqueRect, WORD wOptions);
179
180extern WORD PRTDRV_Output(LPPDEVICE lpDestDev,
181 WORD wStyle,
182 WORD wCount,
183 POINT16 *points,
184 LPLOGPEN16 lpPen,
185 LPLOGBRUSH16 lpBrush,
186 SEGPTR lpDrawMode,
187 HRGN hClipRgn);
188
189DWORD PRTDRV_StretchBlt(LPPDEVICE lpDestDev,
190 WORD wDestX, WORD wDestY,
191 WORD wDestXext, WORD wDestYext,
192 LPPDEVICE lpSrcDev,
193 WORD wSrcX, WORD wSrcY,
194 WORD wSrcXext, WORD wSrcYext,
195 DWORD Rop3,
196 LPLOGBRUSH16 lpBrush,
197 SEGPTR lpDrawMode,
198 RECT16 *lpClipRect);
199
200extern WORD PRTDRV_GetCharWidth(LPPDEVICE lpDestDev, LPINT lpBuffer,
201 WORD wFirstChar, WORD wLastChar, LPFONTINFO16 lpFontInfo,
202 SEGPTR lpDrawMode, SEGPTR lpTextXForm );
203
204/* Wine driver functions */
205
206extern BOOL WIN16DRV_Init(void);
207extern BOOL WIN16DRV_GetCharWidth( struct tagDC *dc, UINT firstChar, UINT lastChar,
208 LPINT buffer );
209
210extern BOOL WIN16DRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT count,
211 LPSIZE size );
212extern BOOL WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRICA *metrics );
213
214extern BOOL WIN16DRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
215 const RECT *lprect, LPCSTR str, UINT count,
216 const INT *lpDx );
217extern BOOL WIN16DRV_LineTo( DC *dc, INT x, INT y );
218extern BOOL WIN16DRV_MoveToEx(DC *dc,INT x,INT y,LPPOINT pt);
219extern BOOL WIN16DRV_Polygon(DC *dc, const POINT* pt, INT count );
220extern BOOL WIN16DRV_Polyline(DC *dc, const POINT* pt, INT count );
221extern BOOL WIN16DRV_Rectangle(DC *dc, INT left, INT top, INT right, INT bottom);
222extern HGDIOBJ WIN16DRV_SelectObject( DC *dc, HGDIOBJ handle );
223extern BOOL WIN16DRV_PatBlt( struct tagDC *dc, INT left, INT top,
224 INT width, INT height, DWORD rop );
225extern BOOL WIN16DRV_Ellipse(DC *dc, INT left, INT top, INT right, INT bottom);
226extern BOOL WIN16DRV_EnumDeviceFonts( DC* dc, LPLOGFONT16 plf,
227 DEVICEFONTENUMPROC proc, LPARAM lp );
228
229
230/*
231 * Wine 16bit driver global variables
232 */
233extern SEGPTR win16drv_SegPtr_TextXForm;
234extern LPTEXTXFORM16 win16drv_TextXFormP;
235extern SEGPTR win16drv_SegPtr_DrawMode;
236extern LPDRAWMODE win16drv_DrawModeP;
237
238#endif /* __WINE_WIN16DRV_H */
239
Note: See TracBrowser for help on using the repository browser.