2 * Win16 printer driver definitions
5 #ifndef __WINE_WIN16DRV_H
6 #define __WINE_WIN16DRV_H
14 #define GETGDIINFO 0x8001
15 #define INITPDEVICE 0x8000
17 #define GETGDIINFO 0x0001
18 #define INITPDEVICE 0x0000
23 #define ORD_COLORINFO 2
27 #define ORD_ENUMDFONTS 6
31 #define ORD_REALIZEOBJECT 10
34 #define ORD_DEVICEMODE 13
35 #define ORD_EXTTEXTOUT 14
36 #define ORD_GETCHARWIDTH 15
37 #define ORD_DEVICEBITMAP 16
38 #define ORD_FASTBORDER 17
39 #define ORD_SETATTRIBUTE 18
41 #define ORD_STRETCHBLT 27
42 #define ORD_STRETCHDIBITS 28
43 #define ORD_SELECTBITMAP 29
44 #define ORD_BITMAPBITS 30
46 #define ORD_EXTDEVICEMODE 90
47 #define ORD_DEVICECAPABILITIES 91
48 #define ORD_ADVANCEDSETUPDIALOG 93
50 #define ORD_DIALOGFN 100
51 #define ORD_PSEUDOEDIT 101
77 FUNC_DEVICECAPABILITIES
,
78 FUNC_ADVANCEDSETUPDIALOG
,
81 TOTAL_PRINTER_DRIVER_FUNCTIONS
/* insert functions before here */
84 typedef struct PRINTER_FONTS_INFO
86 LOGFONT16 lf
; /* LogFont infomation */
87 TEXTMETRIC16 tm
; /* Text metrics infomation */
92 char szDriver
[9]; /* Driver name eg EPSON */
93 HINSTANCE16 hInst
; /* Handle for driver */
94 WORD ds_reg
; /* DS of driver */
95 FARPROC16 fn
[TOTAL_PRINTER_DRIVER_FUNCTIONS
]; /* Printer functions */
96 int nUsageCount
; /* Usage count, unload == 0 */
97 int nPrinterFonts
; /* Number of printer fonts */
98 PRINTER_FONTS_INFO
*paPrinterFonts
; /* array of printer fonts */
99 int nIndex
; /* Index in global driver array */
100 HGLOBAL16 hThunk
; /* Thunking buffer */
101 SEGPTR ThunkBufSegPtr
;
102 SEGPTR ThunkBufLimit
;
103 } LOADED_PRINTER_DRIVER
;
105 typedef struct PDEVICE_HEADER
107 LOADED_PRINTER_DRIVER
*pLPD
; /* Associated printer driver */
114 typedef struct DRAWMODE
128 } DRAWMODE
, *LPDRAWMODE
;
133 typedef struct WINE_ENUM_PRINTER_FONT_CALLBACK
135 DWORD magic
; /* magic number */
136 int nMode
; /* Mode 0=count, 1=store */
137 int nCount
; /* Callback count */
138 LOADED_PRINTER_DRIVER
*pLPD
; /* Printer driver info */
144 #define OBJ_PBITMAP 5
146 /* Win16 printer driver physical DC */
149 SEGPTR segptrPDEVICE
; /* PDEVICE used by 16 bit printer drivers */
150 LOGFONT16 lf
; /* Current font details */
151 TEXTMETRIC16 tm
; /* Current font metrics */
152 SEGPTR segptrFontInfo
; /* Current font realized by printer driver */
156 * Printer driver functions
158 typedef SEGPTR LPPDEVICE
;
159 LOADED_PRINTER_DRIVER
*LoadPrinterDriver(const char *pszDriver
);
161 extern INT16
PRTDRV_Control(LPPDEVICE lpDestDev
, WORD wfunction
, SEGPTR lpInData
, SEGPTR lpOutData
);
162 extern WORD
PRTDRV_Enable(LPVOID lpDevInfo
, WORD wStyle
, LPCSTR lpDestDevType
,
163 LPCSTR lpDeviceName
, LPCSTR lpOutputFile
, LPVOID lpData
);
164 extern WORD
PRTDRV_EnumDFonts(LPPDEVICE lpDestDev
, LPSTR lpFaceName
,
165 FARPROC16 lpCallbackFunc
, LPVOID lpClientData
);
166 extern DWORD
PRTDRV_RealizeObject(LPPDEVICE lpDestDev
, WORD wStyle
,
167 LPVOID lpInObj
, LPVOID lpOutObj
,
170 extern BOOL16
PRTDRV_EnumObj(LPPDEVICE lpDestDev
, WORD iStyle
, FARPROC16 lpfn
, LPVOID lpb
);
171 extern DWORD
PRTDRV_ExtTextOut(LPPDEVICE lpDestDev
, WORD wDestXOrg
, WORD wDestYOrg
,
172 RECT16
*lpClipRect
, LPCSTR lpString
, WORD wCount
,
173 SEGPTR lpFontInfo
,SEGPTR lpDrawMode
,
174 SEGPTR lpTextXForm
, SHORT
*lpCharWidths
,
175 RECT16
* lpOpaqueRect
, WORD wOptions
);
178 /* Wine driver functions */
180 extern BOOL32
WIN16DRV_GetCharWidth( struct tagDC
*dc
, UINT32 firstChar
, UINT32 lastChar
,
183 extern BOOL32
WIN16DRV_GetTextExtentPoint( DC
*dc
, LPCSTR str
, INT32 count
,
185 extern BOOL32
WIN16DRV_GetTextMetrics( DC
*dc
, TEXTMETRIC32A
*metrics
);
187 extern BOOL32
WIN16DRV_ExtTextOut( DC
*dc
, INT32 x
, INT32 y
, UINT32 flags
,
188 const RECT32
*lprect
, LPCSTR str
, UINT32 count
,
190 extern HGDIOBJ32
WIN16DRV_SelectObject( DC
*dc
, HGDIOBJ32 handle
);
191 extern BOOL32
WIN16DRV_PatBlt( struct tagDC
*dc
, INT32 left
, INT32 top
,
192 INT32 width
, INT32 height
, DWORD rop
);
197 * Wine 16bit driver global variables
199 extern SEGPTR win16drv_SegPtr_TextXForm
;
200 extern LPTEXTXFORM16 win16drv_TextXFormP
;
201 extern SEGPTR win16drv_SegPtr_DrawMode
;
202 extern LPDRAWMODE win16drv_DrawModeP
;
204 #endif /* __WINE_WIN16DRV_H */