| /* |
| * 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 */ |