1996-08-24 20:26:35 +02:00
|
|
|
/*
|
|
|
|
* 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)
|
|
|
|
#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;
|
|
|
|
|
|
|
|
|
|
|
|
#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;
|
|
|
|
|
1997-03-29 18:20:20 +01:00
|
|
|
/*
|
|
|
|
* Printer driver functions
|
|
|
|
*/
|
|
|
|
typedef SEGPTR LPPDEVICE;
|
|
|
|
LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver);
|
|
|
|
|
|
|
|
extern INT16 PRTDRV_Control(LPPDEVICE lpDestDev, WORD wfunction, SEGPTR lpInData, SEGPTR lpOutData);
|
|
|
|
extern WORD PRTDRV_Enable(LPVOID lpDevInfo, WORD wStyle, LPCSTR lpDestDevType,
|
|
|
|
LPCSTR lpDeviceName, LPCSTR lpOutputFile, LPVOID lpData);
|
|
|
|
extern WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName,
|
|
|
|
FARPROC16 lpCallbackFunc, LPVOID lpClientData);
|
|
|
|
extern DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle,
|
|
|
|
LPVOID lpInObj, LPVOID lpOutObj,
|
1997-06-16 19:43:53 +02:00
|
|
|
SEGPTR lpTextXForm);
|
1997-03-29 18:20:20 +01:00
|
|
|
|
|
|
|
extern BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle, FARPROC16 lpfn, LPVOID lpb);
|
|
|
|
extern DWORD PRTDRV_ExtTextOut(LPPDEVICE lpDestDev, WORD wDestXOrg, WORD wDestYOrg,
|
|
|
|
RECT16 *lpClipRect, LPCSTR lpString, WORD wCount,
|
1997-06-16 19:43:53 +02:00
|
|
|
SEGPTR lpFontInfo,SEGPTR lpDrawMode,
|
|
|
|
SEGPTR lpTextXForm, SHORT *lpCharWidths,
|
1997-03-29 18:20:20 +01:00
|
|
|
RECT16 * lpOpaqueRect, WORD wOptions);
|
|
|
|
|
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
/* Wine driver functions */
|
|
|
|
|
1997-03-29 18:20:20 +01:00
|
|
|
extern BOOL32 WIN16DRV_GetCharWidth( struct tagDC *dc, UINT32 firstChar, UINT32 lastChar,
|
|
|
|
LPINT32 buffer );
|
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
extern BOOL32 WIN16DRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT32 count,
|
|
|
|
LPSIZE32 size );
|
|
|
|
extern BOOL32 WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRIC32A *metrics );
|
|
|
|
|
Release 970120
Sun Jan 19 11:46:48 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [loader/module.c]
Fixed LoadModule() to always call the DLL initialization code.
* [windows/event.c]
Moved all the keyboard stuff to windows/keyboard.c
* [tools/build.c]
Fixed Win32 register functions.
Sat Jan 18 22:24:41 1997 David Makepeace <D.Makepeace@mailbox.uq.oz.au>
* [tools/makedep.c]
Fixed bug which causes SEGV on Solaris x86.
Fri Jan 17 18:32:27 1997 Frans van Dorsselaer <dorssel@rulhmpc49.LeidenUniv.nl>
* [controls/edit.c]
Implemented WM_UNDO, WM_CONTEXTMENU (temporary using WM_RBUTTONUP),
WM_COMMAND, WM_INITPOPUPMENU, WM_SYSKEYDOWN.
Fixed EM_SETSEL and some minor bugs (features).
Hence: fully functional undo and a win95 menu with the right mouse
button.
* [include/resources.h] [resources/TODO] [resources/sysres_??.rc]
Added a context menu for the edit control.
Translations, please ...
Fri Jan 17 08:29:52 1997 David Faure <david.faure@ifhamy.insa-lyon.fr>
* [windows/event.c]
Move EVENT_ToAscii to windows/keyboard.c (where name ToAscii)
Fixed Keypad keys 0-9 and . in EVENT_event_to_vkey.
Added 3-state handling of toggle keys (CapsLock, NumLock) in order
to make them work with any X server.
Toggle keys now generate WM_KEYDOWN and WM_KEYUP on each pressing.
* [include/keyboard.h]
Totally replaced the file (formerly containing the vkcase definitions)
by the declaration of 'extern' variables contained by event.c and used
by keyboard.c
* [windows/keyboard.c]
Started to rewrite VkKeyScan and MapVirtualKey, to make them use the
table keyc2vkey or X functions only.
ToAscii : added keypad 0-9 and . special case.
Changed toggle keys active mask from 0x80 to 0x1.
* [misc/keyboard.c]
File deleted. Contents moved to windows/keyboard.c.
* [misc/main.c]
Added putenv XKB_DISABLE to disable XKB extension (which, when
present, causes AltGr to change keyboard group instead of being a
modifier).
Tue Jan 14 22:56:43 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* [windows/event.c]
Do not assume NumLockMask is Mod2Mask, but compute it by scanning
output of XGetModifierMapping for XK_Num_Lock.
Tue Jan 14 15:49:49 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [loader/pe_*.c] [include/peexe.h] [include/resource32.h]
[debugger/*.c]
General clean up.
Changed defines/structures to match Windows NT SDK.
* [loader/main.c]
Don't crash on empty command-line.
* [windows/winpos.c]
winpos.c made win32 clean.
* [misc/ntdll.c]
Some string conversion additions.
* [files/file.c]
GetFileAttributes/GetTempFileName fixed.
* [misc/ver.c]
VerInstallFile implemented.
Mon Jan 13 15:03:11 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* [tools/build.c]: Use PREFIX also in stabs messages.
Mon Jan 13 10:40:33 1997 John Harvey <john@division.co.uk>
* [graphics/win16drv/*] [include/win16drv.h]
Many fixes and some new features.
* [graphics/x11drv/font.c] [graphics/x11drv/init.c]
[include/x11drv.h] [objects/font.c]
GetTextMetrics() moved to graphics driver.
* [if1632/gdi.spec] [misc/fontengine.c] [misc/Makefile.in]
New dummy EngineEnumerateFont, EngineRealizeFont functions.
* [include/windows.h]
TEXTFORM16 and FONTINFO16 structure definitions moved here from
include/win16drv.h
1997-01-20 20:43:45 +01:00
|
|
|
extern BOOL32 WIN16DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
|
|
|
|
const RECT32 *lprect, LPCSTR str, UINT32 count,
|
|
|
|
const INT32 *lpDx );
|
1997-03-05 09:22:35 +01:00
|
|
|
extern HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle );
|
|
|
|
|
|
|
|
|
1997-03-29 18:20:20 +01:00
|
|
|
|
1997-06-16 19:43:53 +02:00
|
|
|
/*
|
|
|
|
* Wine 16bit driver global variables
|
|
|
|
*/
|
|
|
|
extern SEGPTR win16drv_SegPtr_TextXForm;
|
|
|
|
extern LPTEXTXFORM16 win16drv_TextXFormP;
|
|
|
|
extern SEGPTR win16drv_SegPtr_DrawMode;
|
|
|
|
extern LPDRAWMODE win16drv_DrawModeP;
|
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
#endif /* __WINE_WIN16DRV_H */
|