wine based win32 printer drivers

Detlef Riekenberg wine.dev at web.de
Sun Mar 30 18:12:15 CDT 2008


On So, 2008-03-30 at 06:03 +0200, Marcel Partap wrote:
> Anyways, I am working on getting something merged.. 

Great!

> For now the target is to get the Adobe pscript5 driver working which
> has its own raster renderer and thus does not depend on the dib
> engine. 
A Postscript Driver has no raster renderer...
A Postscript Driver has a Postscript Engine.

> Just started by making AddPrinter correctly get 
> a default devmode out of the driver, patch is attached, 

> DRIVER_EVENT_INITIALIZE, 3,
"3" is wrong here. See: myAddPrinterDriverEx(DWORD level, ...

Since there are much more Events, we need the DriverUI in more Places
later. I suggest a simple struct, which can be extended later
(The struct must include the Results from GetProcAddress)


The changes for winspool.drv must go in a seperate Patch.
WINSPOOL_CallDrvDocumentProperties is the wrong name, when you 
call DrvDocumentPropertySheets.

You should collect all API in winspool.drv, that need the driverui
(some are not implemented) and design a simple struct
with helper functions (Use monitor_t as example).
Not all Drivers Export DrvDocumentPropertySheets.
You must prepare to use a Fallback to get the default devmode
(DrvConvertDevMode)
See winspool.drv/monitor_load as Example:
- InitializePrintMonitor2 is suggested my MSDN, but not needed yet
- InitializePrintMonitor implemented
- InitializeMonitorEx and InitializeMonitor as Fallback.

The current Code is a crosscall from DocumentPropertiesW to
DocumentPropertiesA.
The DDI-API is unicode and should be the prefered way.
When wineps.drv is updated, the old code with the crosscall can be
removed, since we do not support ANSI Drivers (Windows 9x).

You can even use the same struct and helper functions 
in localspl.dll and winspool.drv


-- 
 
By by ... Detlef





More information about the wine-devel mailing list