/* * Win16 printer driver definitions */ #ifndef __WINE_WIN16DRV_H #define __WINE_WIN16DRV_H #include "windows.h" #include "gdi.h" #define SETHIGHBIT #undef SETHIGHBIT #ifdef SETHIGHBIT #define GETGDIINFO 0x8001 #define INITPDEVICE 0x8000 #else #define GETGDIINFO 0x0001 #define INITPDEVICE 0x0000 #endif /* Internal Data */ #define ORD_BITBLT 1 #define ORD_COLORINFO 2 #define ORD_CONTROL 3 #define ORD_DISABLE 4 #define ORD_ENABLE 5 #define ORD_ENUMDFONTS 6 #define ORD_ENUMOBJ 7 #define ORD_OUTPUT 8 #define ORD_PIXEL 9 #define ORD_REALIZEOBJECT 10 #define ORD_STRBLT 11 #define ORD_SCANLR 12 #define ORD_DEVICEMODE 13 #define ORD_EXTTEXTOUT 14 #define ORD_GETCHARWIDTH 15 #define ORD_DEVICEBITMAP 16 #define ORD_FASTBORDER 17 #define ORD_SETATTRIBUTE 18 #define ORD_STRETCHBLT 27 #define ORD_STRETCHDIBITS 28 #define ORD_SELECTBITMAP 29 #define ORD_BITMAPBITS 30 #define ORD_EXTDEVICEMODE 90 #define ORD_DEVICECAPABILITIES 91 #define ORD_ADVANCEDSETUPDIALOG 93 #define ORD_DIALOGFN 100 #define ORD_PSEUDOEDIT 101 enum { FUNC_BITBLT = 0, FUNC_COLORINFO, FUNC_CONTROL, FUNC_DISABLE, FUNC_ENABLE, FUNC_ENUMDFONTS, FUNC_ENUMOBJ, FUNC_OUTPUT, FUNC_PIXEL, FUNC_REALIZEOBJECT, FUNC_STRBLT, FUNC_SCANLR, FUNC_DEVICEMODE, FUNC_EXTTEXTOUT, FUNC_GETCHARWIDTH, FUNC_DEVICEBITMAP, FUNC_FASTBORDER, FUNC_SETATTRIBUTE, FUNC_STRETCHBLT, FUNC_STRETCHDIBITS, FUNC_SELECTBITMAP, FUNC_BITMAPBITS, FUNC_EXTDEVICEMODE, FUNC_DEVICECAPABILITIES, FUNC_ADVANCEDSETUPDIALOG, FUNC_DIALOGFN, FUNC_PSEUDOEDIT, TOTAL_PRINTER_DRIVER_FUNCTIONS /* insert functions before here */ }; typedef struct PRINTER_FONTS_INFO { LOGFONT16 lf; /* LogFont infomation */ TEXTMETRIC16 tm; /* Text metrics infomation */ } PRINTER_FONTS_INFO; typedef struct { char szDriver[9]; /* Driver name eg EPSON */ HINSTANCE16 hInst; /* Handle for driver */ WORD ds_reg; /* DS of driver */ FARPROC16 fn[TOTAL_PRINTER_DRIVER_FUNCTIONS]; /* Printer functions */ int nUsageCount; /* Usage count, unload == 0 */ int nPrinterFonts; /* Number of printer fonts */ PRINTER_FONTS_INFO *paPrinterFonts; /* array of printer fonts */ int nIndex; /* Index in global driver array */ HGLOBAL16 hThunk; /* Thunking buffer */ SEGPTR ThunkBufSegPtr; SEGPTR ThunkBufLimit; } LOADED_PRINTER_DRIVER; typedef struct PDEVICE_HEADER { LOADED_PRINTER_DRIVER *pLPD; /* Associated printer driver */ } PDEVICE_HEADER; typedef short SHORT; #pragma pack(1) typedef struct TEXTXFORM { SHORT txfHeight; SHORT txfWidth; SHORT txfEscapement; SHORT txfOrientation; SHORT txfWeight; CHAR txfItalic; CHAR txfUnderline; CHAR txfStrikeOut; CHAR txfOutPrecision; CHAR txfClipPrecision; SHORT txfAccelerator WINE_PACKED; SHORT txfOverhang WINE_PACKED; } TEXTXFORM, *LPTEXTXFORM; #define PCOLOR DWORD typedef struct DRAWMODE { SHORT Rop2; SHORT bkMode; PCOLOR bkColor; PCOLOR TextColor; SHORT TBreakExtra; SHORT BreakExtra; SHORT BreakErr; SHORT BreakRem; SHORT BreakCount; SHORT CharExtra; COLORREF LbkColor; COLORREF LTextColor; } DRAWMODE, *LPDRAWMODE; typedef struct FONTINFO { SHORT dfType; SHORT dfPoints; SHORT dfVertRes; SHORT dfHorizRes; SHORT dfAscent; SHORT dfInternalLeading; SHORT dfExternalLeading; CHAR dfItalic; CHAR dfUnderline; CHAR dfStrikeOut; SHORT dfWeight; CHAR dfCHARSet; SHORT dfPixWidth; SHORT dfPixHeight; CHAR dfPitchAndFamily; SHORT dfAvgWidth; SHORT dfMaxWidth; CHAR dfFirstCHAR; CHAR dfLastCHAR; CHAR dfDefaultCHAR; CHAR dfBreakCHAR; SHORT dfWidthBytes; LONG dfDevice; LONG dfFace; LONG dfBitsPointer; LONG dfBitsOffset; CHAR dfReserved; LONG dfFlags; SHORT dfAspace; SHORT dfBspace; SHORT dfCspace; LONG dfColorPointer; LONG dfReserved1[4]; } FONTINFO, *LPFONTINFO; #pragma pack(4) typedef struct WINE_ENUM_PRINTER_FONT_CALLBACK { DWORD magic; /* magic number */ int nMode; /* Mode 0=count, 1=store */ int nCount; /* Callback count */ LOADED_PRINTER_DRIVER *pLPD; /* Printer driver info */ } WEPFC; #define OBJ_PEN 1 #define OBJ_BRUSH 2 #define OBJ_FONT 3 #define OBJ_PBITMAP 5 /* Win16 printer driver physical DC */ typedef struct { SEGPTR segptrPDEVICE; /* PDEVICE used by 16 bit printer drivers */ LOGFONT16 lf; /* Current font details */ TEXTMETRIC16 tm; /* Current font metrics */ SEGPTR segptrFontInfo; /* Current font realized by printer driver */ } WIN16DRV_PDEVICE; /* Wine driver functions */ extern BOOL32 WIN16DRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT32 count, LPSIZE32 size ); extern BOOL32 WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRIC32A *metrics ); #endif /* __WINE_WIN16DRV_H */