Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
ee2d9d58
Commit
ee2d9d58
authored
May 22, 1999
by
Huw D M Davies
Committed by
Alexandre Julliard
May 22, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented AddPrinterA, AddPrinterDriverA and GetPrinterDriverDirectory
Moved some 16bit GDI function declarations from winspool.h -> wingdi16.h
parent
338d3b2d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
316 additions
and
27 deletions
+316
-27
info.c
dlls/winspool/info.c
+258
-10
wingdi16.h
include/wine/wingdi16.h
+11
-1
winerror.h
include/winerror.h
+11
-1
winspool.h
include/winspool.h
+34
-13
winspool.spec
relay32/winspool.spec
+2
-2
No files found.
dlls/winspool/info.c
View file @
ee2d9d58
...
...
@@ -14,6 +14,7 @@
#include "winerror.h"
#include "winreg.h"
#include "debugtools.h"
#include "heap.h"
DEFAULT_DEBUG_CHANNEL
(
winspool
)
...
...
@@ -44,7 +45,10 @@ static OPENEDPRINTERA OpenedPrinterTableA[NUM_PRINTER_MAX] =
{
NULL
,
-
1
,
NULL
}
};
static
char
Printers
[]
=
"System
\\
CurrentControlSet
\\
Control
\\
Print
\\
Printers
\\
"
;
static
char
Printers
[]
=
"System
\\
CurrentControlSet
\\
control
\\
Print
\\
Printers
\\
"
;
static
char
Drivers
[]
=
"System
\\
CurrentControlSet
\\
control
\\
Print
\\
Environments
\\
Wine
\\
Drivers
\\
"
;
/******************************************************************
...
...
@@ -646,7 +650,7 @@ BOOL WINAPI EnumPrintersA(
/* Enter critical section to prevent AddPrinters() et al. to
* modify whilst we're reading in the registry
*/
*/
InitializeCriticalSection
(
&
PRINT32_RegistryBlocker
);
EnterCriticalSection
(
&
PRINT32_RegistryBlocker
);
...
...
@@ -894,8 +898,100 @@ BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
*/
HANDLE
WINAPI
AddPrinterA
(
LPSTR
pName
,
DWORD
Level
,
LPBYTE
pPrinter
)
{
FIXME
(
"(%s,%ld,%p): stub
\n
"
,
pName
,
Level
,
pPrinter
);
return
0
;
PRINTER_INFO_2A
*
pi
=
(
PRINTER_INFO_2A
*
)
pPrinter
;
HANDLE
retval
;
HKEY
hkeyPrinter
,
hkeyPrinters
,
hkeyDriver
,
hkeyDrivers
;
TRACE
(
"(%s,%ld,%p)
\n
"
,
pName
,
Level
,
pPrinter
);
if
(
pName
!=
NULL
)
{
FIXME
(
"pName = `%s' - unsupported
\n
"
,
pName
);
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
Level
!=
2
)
{
WARN
(
"Level = %ld
\n
"
,
Level
);
SetLastError
(
ERROR_INVALID_LEVEL
);
return
0
;
}
if
(
!
pPrinter
)
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
RegCreateKeyA
(
HKEY_LOCAL_MACHINE
,
Printers
,
&
hkeyPrinters
)
!=
ERROR_SUCCESS
)
{
ERR
(
"Can't create Printers key
\n
"
);
return
0
;
}
if
(
RegOpenKeyA
(
hkeyPrinters
,
pi
->
pPrinterName
,
&
hkeyPrinter
)
==
ERROR_SUCCESS
)
{
SetLastError
(
ERROR_PRINTER_ALREADY_EXISTS
);
RegCloseKey
(
hkeyPrinter
);
RegCloseKey
(
hkeyPrinters
);
return
0
;
}
if
(
RegCreateKeyA
(
HKEY_LOCAL_MACHINE
,
Drivers
,
&
hkeyDrivers
)
!=
ERROR_SUCCESS
)
{
ERR
(
"Can't create Drivers key
\n
"
);
RegCloseKey
(
hkeyPrinters
);
return
0
;
}
if
(
RegOpenKeyA
(
hkeyDrivers
,
pi
->
pDriverName
,
&
hkeyDriver
)
!=
ERROR_SUCCESS
)
{
WARN
(
"Can't find driver `%s'
\n
"
,
pi
->
pDriverName
);
RegCloseKey
(
hkeyPrinters
);
RegCloseKey
(
hkeyDrivers
);
SetLastError
(
ERROR_UNKNOWN_PRINTER_DRIVER
);
return
0
;
}
RegCloseKey
(
hkeyDriver
);
RegCloseKey
(
hkeyDrivers
);
if
(
strcasecmp
(
pi
->
pPrintProcessor
,
"WinPrint"
))
{
/* FIXME */
WARN
(
"Can't find processor `%s'
\n
"
,
pi
->
pPrintProcessor
);
SetLastError
(
ERROR_UNKNOWN_PRINTPROCESSOR
);
RegCloseKey
(
hkeyPrinters
);
return
0
;
}
if
(
RegCreateKeyA
(
hkeyPrinters
,
pi
->
pPrinterName
,
&
hkeyPrinter
)
!=
ERROR_SUCCESS
)
{
WARN
(
"Can't create printer `%s'
\n
"
,
pi
->
pPrinterName
);
SetLastError
(
ERROR_INVALID_PRINTER_NAME
);
RegCloseKey
(
hkeyPrinters
);
return
0
;
}
RegSetValueExA
(
hkeyPrinter
,
"Attributes"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
pi
->
Attributes
,
sizeof
(
DWORD
));
RegSetValueExA
(
hkeyPrinter
,
"Default DevMode"
,
0
,
REG_BINARY
,
(
LPSTR
)
&
pi
->
pDevMode
,
pi
->
pDevMode
?
pi
->
pDevMode
->
dmSize
:
0
);
RegSetValueExA
(
hkeyPrinter
,
"Description"
,
0
,
REG_SZ
,
pi
->
pComment
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Location"
,
0
,
REG_SZ
,
pi
->
pLocation
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Name"
,
0
,
REG_SZ
,
pi
->
pPrinterName
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Parameters"
,
0
,
REG_SZ
,
pi
->
pParameters
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Port"
,
0
,
REG_SZ
,
pi
->
pPortName
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Print Processor"
,
0
,
REG_SZ
,
pi
->
pPrintProcessor
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Printer Driver"
,
0
,
REG_SZ
,
pi
->
pDriverName
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Priority"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
pi
->
Priority
,
sizeof
(
DWORD
));
RegSetValueExA
(
hkeyPrinter
,
"Separator File"
,
0
,
REG_SZ
,
pi
->
pSepFile
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Share Name"
,
0
,
REG_SZ
,
pi
->
pShareName
,
0
);
RegSetValueExA
(
hkeyPrinter
,
"Start Time"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
pi
->
StartTime
,
sizeof
(
DWORD
));
RegSetValueExA
(
hkeyPrinter
,
"Status"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
pi
->
Status
,
sizeof
(
DWORD
));
RegSetValueExA
(
hkeyPrinter
,
"Until Time"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
pi
->
UntilTime
,
sizeof
(
DWORD
));
RegCloseKey
(
hkeyPrinter
);
RegCloseKey
(
hkeyPrinters
);
if
(
!
OpenPrinterA
(
pi
->
pPrinterName
,
&
retval
,
NULL
))
{
ERR
(
"OpenPrinter failing
\n
"
);
return
0
;
}
return
retval
;
}
/*****************************************************************************
...
...
@@ -1104,11 +1200,27 @@ BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
* GetPrinterDriver32A [WINSPOOL.190]
*/
BOOL
WINAPI
GetPrinterDriverA
(
HANDLE
hPrinter
,
LPSTR
pEnvironment
,
DWORD
Level
,
LPBYTE
pDriverInfo
,
DWORD
cbBuf
,
LPDWORD
pcbNeeded
)
DWORD
Level
,
LPBYTE
pDriverInfo
,
DWORD
cbBuf
,
LPDWORD
pcbNeeded
)
{
OPENEDPRINTERA
*
lpOpenedPrinter
;
LPSTR
lpName
;
FIXME
(
"(%d,%s,%ld,%p,%ld,%p): stub
\n
"
,
hPrinter
,
pEnvironment
,
Level
,
pDriverInfo
,
cbBuf
,
pcbNeeded
);
lpOpenedPrinter
=
WINSPOOL_GetOpenedPrinterA
(
hPrinter
);
if
(
!
lpOpenedPrinter
)
{
SetLastError
(
ERROR_INVALID_HANDLE
);
return
FALSE
;
}
lpName
=
lpOpenedPrinter
->
lpsPrinterName
;
if
(
pEnvironment
)
{
FIXME
(
"pEnvironment = `%s'
\n
"
,
pEnvironment
);
SetLastError
(
ERROR_INVALID_ENVIRONMENT
);
return
FALSE
;
}
return
FALSE
;
}
...
...
@@ -1123,14 +1235,150 @@ BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
Level
,
pDriverInfo
,
cbBuf
,
pcbNeeded
);
return
FALSE
;
}
/*****************************************************************************
* GetPrinterDriverDirectoryA [WINSPOOL.191]
*/
BOOL
WINAPI
GetPrinterDriverDirectoryA
(
LPSTR
pName
,
LPSTR
pEnvironment
,
DWORD
Level
,
LPBYTE
pDriverDirectory
,
DWORD
cbBuf
,
LPDWORD
pcbNeeded
)
{
DWORD
needed
;
TRACE
(
"(%s, %s, %ld, %p, %ld, %p)
\n
"
,
pName
,
pEnvironment
,
Level
,
pDriverDirectory
,
cbBuf
,
pcbNeeded
);
if
(
pName
!=
NULL
)
{
FIXME
(
"pName = `%s' - unsupported
\n
"
,
pName
);
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
if
(
pEnvironment
!=
NULL
)
{
FIXME
(
"pEnvironment = `%s' - unsupported
\n
"
,
pEnvironment
);
SetLastError
(
ERROR_INVALID_ENVIRONMENT
);
return
FALSE
;
}
if
(
Level
!=
1
)
/* win95 ignores this so we just carry on */
WARN
(
"Level = %ld - assuming 1
\n
"
,
Level
);
/* FIXME should read from registry */
needed
=
GetSystemDirectoryA
(
pDriverDirectory
,
cbBuf
);
needed
++
;
if
(
pcbNeeded
)
*
pcbNeeded
=
needed
;
if
(
needed
>
cbBuf
)
{
SetLastError
(
ERROR_INSUFFICIENT_BUFFER
);
return
FALSE
;
}
return
TRUE
;
}
/*****************************************************************************
* GetPrinterDriverDirectoryW [WINSPOOL.192]
*/
BOOL
WINAPI
GetPrinterDriverDirectoryW
(
LPWSTR
pName
,
LPWSTR
pEnvironment
,
DWORD
Level
,
LPBYTE
pDriverDirectory
,
DWORD
cbBuf
,
LPDWORD
pcbNeeded
)
{
LPSTR
pNameA
=
NULL
,
pEnvironmentA
=
NULL
;
BOOL
ret
;
if
(
pName
)
pNameA
=
HEAP_strdupWtoA
(
GetProcessHeap
(),
0
,
pName
);
if
(
pEnvironment
)
pEnvironmentA
=
HEAP_strdupWtoA
(
GetProcessHeap
(),
0
,
pEnvironment
);
ret
=
GetPrinterDriverDirectoryA
(
pNameA
,
pEnvironmentA
,
Level
,
pDriverDirectory
,
cbBuf
,
pcbNeeded
);
if
(
pNameA
)
HeapFree
(
GetProcessHeap
(),
0
,
pNameA
);
if
(
pEnvironmentA
)
HeapFree
(
GetProcessHeap
(),
0
,
pEnvironment
);
return
ret
;
}
/*****************************************************************************
* AddPrinterDriver32A [WINSPOOL.120]
*/
BOOL
WINAPI
AddPrinterDriverA
(
LPSTR
printerName
,
DWORD
level
,
LPBYTE
pDriverInfo
)
BOOL
WINAPI
AddPrinterDriverA
(
LPSTR
pName
,
DWORD
level
,
LPBYTE
pDriverInfo
)
{
FIXME
(
"(%s,%ld,%p): stub
\n
"
,
printerName
,
level
,
pDriverInfo
);
return
FALSE
;
DRIVER_INFO_3A
di3
;
HKEY
hkeyDrivers
,
hkeyName
;
TRACE
(
"(%s,%ld,%p)
\n
"
,
pName
,
level
,
pDriverInfo
);
if
(
level
!=
2
&&
level
!=
3
)
{
SetLastError
(
ERROR_INVALID_LEVEL
);
return
FALSE
;
}
if
(
pName
!=
NULL
)
{
FIXME
(
"pName= `%s' - unsupported
\n
"
,
pName
);
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
if
(
!
pDriverInfo
)
{
WARN
(
"pDriverInfo == NULL"
);
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
if
(
level
==
3
)
di3
=
*
(
DRIVER_INFO_3A
*
)
pDriverInfo
;
else
{
memset
(
&
di3
,
0
,
sizeof
(
di3
));
*
(
DRIVER_INFO_2A
*
)
&
di3
=
*
(
DRIVER_INFO_2A
*
)
pDriverInfo
;
}
if
(
!
di3
.
pName
||
!
di3
.
pDriverPath
||
!
di3
.
pConfigFile
||
!
di3
.
pDataFile
)
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
if
(
!
di3
.
pDefaultDataType
)
di3
.
pDefaultDataType
=
""
;
if
(
!
di3
.
pDependentFiles
)
di3
.
pDependentFiles
=
"
\0
"
;
if
(
!
di3
.
pHelpFile
)
di3
.
pHelpFile
=
""
;
if
(
!
di3
.
pMonitorName
)
di3
.
pMonitorName
=
""
;
if
(
di3
.
pEnvironment
)
{
FIXME
(
"pEnvironment = `%s'
\n
"
,
di3
.
pEnvironment
);
SetLastError
(
ERROR_INVALID_ENVIRONMENT
);
return
FALSE
;
}
if
(
RegCreateKeyA
(
HKEY_LOCAL_MACHINE
,
Drivers
,
&
hkeyDrivers
)
!=
ERROR_SUCCESS
)
{
ERR
(
"Can't create Drivers key
\n
"
);
return
FALSE
;
}
if
(
level
==
2
)
{
/* apparently can't overwrite with level2 */
if
(
RegOpenKeyA
(
hkeyDrivers
,
di3
.
pName
,
&
hkeyName
)
==
ERROR_SUCCESS
)
{
RegCloseKey
(
hkeyName
);
RegCloseKey
(
hkeyDrivers
);
WARN
(
"Trying to create existing printer driver `%s'
\n
"
,
di3
.
pName
);
SetLastError
(
ERROR_PRINTER_DRIVER_ALREADY_INSTALLED
);
return
FALSE
;
}
}
if
(
RegCreateKeyA
(
hkeyDrivers
,
di3
.
pName
,
&
hkeyName
)
!=
ERROR_SUCCESS
)
{
RegCloseKey
(
hkeyDrivers
);
ERR
(
"Can't create Name key
\n
"
);
return
FALSE
;
}
RegSetValueExA
(
hkeyName
,
"Configuration File"
,
0
,
REG_SZ
,
di3
.
pConfigFile
,
0
);
RegSetValueExA
(
hkeyName
,
"Data File"
,
0
,
REG_SZ
,
di3
.
pDataFile
,
0
);
RegSetValueExA
(
hkeyName
,
"Driver"
,
0
,
REG_SZ
,
di3
.
pDriverPath
,
0
);
RegSetValueExA
(
hkeyName
,
"Version"
,
0
,
REG_DWORD
,
(
LPSTR
)
&
di3
.
cVersion
,
sizeof
(
DWORD
));
RegSetValueExA
(
hkeyName
,
"Datatype"
,
0
,
REG_SZ
,
di3
.
pDefaultDataType
,
0
);
RegSetValueExA
(
hkeyName
,
"Dependent Files"
,
0
,
REG_MULTI_SZ
,
di3
.
pDependentFiles
,
0
);
RegSetValueExA
(
hkeyName
,
"Help File"
,
0
,
REG_SZ
,
di3
.
pHelpFile
,
0
);
RegSetValueExA
(
hkeyName
,
"Monitor"
,
0
,
REG_SZ
,
di3
.
pMonitorName
,
0
);
RegCloseKey
(
hkeyName
);
RegCloseKey
(
hkeyDrivers
);
return
TRUE
;
}
/*****************************************************************************
* AddPrinterDriver32W [WINSPOOL.121]
...
...
include/wine/wingdi16.h
View file @
ee2d9d58
...
...
@@ -278,6 +278,7 @@ BOOL16 WINAPI BeginPath16(HDC16);
BOOL16
WINAPI
BitBlt16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
HDC16
,
INT16
,
INT16
,
DWORD
);
BOOL16
WINAPI
Chord16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
);
BOOL16
WINAPI
CloseFigure16
(
HDC16
);
int
WINAPI
CloseJob16
(
HANDLE16
);
HMETAFILE16
WINAPI
CloseMetaFile16
(
HDC16
);
INT16
WINAPI
CombineRgn16
(
HRGN16
,
HRGN16
,
HRGN16
,
INT16
);
HMETAFILE16
WINAPI
CopyMetaFile16
(
HMETAFILE16
,
LPCSTR
);
...
...
@@ -314,12 +315,17 @@ BOOL16 WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
HBRUSH16
WINAPI
CreateSolidBrush16
(
COLORREF
);
VOID
WINAPI
Death16
(
HDC16
);
BOOL16
WINAPI
DeleteDC16
(
HDC16
);
int
WINAPI
DeleteJob16
(
HANDLE16
,
WORD
);
BOOL16
WINAPI
DeleteMetaFile16
(
HMETAFILE16
);
BOOL16
WINAPI
DeleteObject16
(
HGDIOBJ16
);
BOOL16
WINAPI
DPtoLP16
(
HDC16
,
LPPOINT16
,
INT16
);
DWORD
WINAPI
DrvGetPrinterData16
(
LPSTR
,
LPSTR
,
LPDWORD
,
LPBYTE
,
int
cbData
,
LPDWORD
);
DWORD
WINAPI
DrvSetPrinterData16
(
LPSTR
,
LPSTR
,
DWORD
,
LPBYTE
,
DWORD
);
BOOL16
WINAPI
Ellipse16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
);
INT16
WINAPI
EndDoc16
(
HDC16
);
INT16
WINAPI
EndPage16
(
HDC16
);
BOOL16
WINAPI
EndPath16
(
HDC16
);
int
WINAPI
EndSpoolPage16
(
HANDLE16
);
INT16
WINAPI
EnumFontFamilies16
(
HDC16
,
LPCSTR
,
FONTENUMPROC16
,
LPARAM
);
INT16
WINAPI
EnumFontFamiliesEx16
(
HDC16
,
LPLOGFONT16
,
FONTENUMPROCEX16
,
LPARAM
,
DWORD
);
INT16
WINAPI
EnumFonts16
(
HDC16
,
LPCSTR
,
FONTENUMPROC16
,
LPARAM
);
...
...
@@ -384,6 +390,7 @@ DWORD WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
INT16
WINAPI
GetRelAbs16
(
HDC16
);
INT16
WINAPI
GetRgnBox16
(
HRGN16
,
LPRECT16
);
INT16
WINAPI
GetROP216
(
HDC16
);
DWORD
WINAPI
GetSpoolJob16
(
int
,
LONG
);
HGDIOBJ16
WINAPI
GetStockObject16
(
INT16
);
INT16
WINAPI
GetStretchBltMode16
(
HDC16
);
UINT16
WINAPI
GetSystemPaletteEntries16
(
HDC16
,
UINT16
,
UINT16
,
LPPALETTEENTRY
);
...
...
@@ -424,6 +431,7 @@ BOOL16 WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
INT16
WINAPI
OffsetVisRgn16
(
HDC16
,
INT16
,
INT16
);
DWORD
WINAPI
OffsetWindowOrg16
(
HDC16
,
INT16
,
INT16
);
BOOL16
WINAPI
OffsetWindowOrgEx16
(
HDC16
,
INT16
,
INT16
,
LPPOINT16
);
HANDLE16
WINAPI
OpenJob16
(
LPSTR
,
LPSTR
,
HDC16
);
BOOL16
WINAPI
PaintRgn16
(
HDC16
,
HRGN16
);
BOOL16
WINAPI
PatBlt16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
DWORD
);
HRGN16
WINAPI
PathToRegion16
(
HDC16
);
...
...
@@ -505,7 +513,7 @@ DWORD WINAPI SetWindowOrg16(HDC16,INT16,INT16);
BOOL16
WINAPI
SetWindowOrgEx16
(
HDC16
,
INT16
,
INT16
,
LPPOINT16
);
INT16
WINAPI
StartDoc16
(
HDC16
,
const
DOCINFO16
*
);
INT16
WINAPI
StartPage16
(
HDC16
);
INT16
WINAPI
EndPage16
(
HDC
16
);
int
WINAPI
StartSpoolPage16
(
HANDLE
16
);
BOOL16
WINAPI
StretchBlt16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
DWORD
);
INT16
WINAPI
StretchDIBits16
(
HDC16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
,
INT16
,
...
...
@@ -516,6 +524,8 @@ BOOL16 WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
BOOL16
WINAPI
UnrealizeObject16
(
HGDIOBJ16
);
INT16
WINAPI
UpdateColors16
(
HDC16
);
BOOL16
WINAPI
WidenPath16
(
HDC16
);
int
WINAPI
WriteDialog16
(
HANDLE16
,
LPSTR
,
WORD
);
int
WINAPI
WriteSpool16
(
HANDLE16
,
LPSTR
,
WORD
);
#endif
/* __WINE_WINGDI16_H */
include/winerror.h
View file @
ee2d9d58
...
...
@@ -260,7 +260,17 @@ extern int WIN32_LastError;
#define ERROR_CLASS_DOES_NOT_EXIST 1411
#define ERROR_CLASS_HAS_WINDOWS 1412
#define ERROR_COMMITMENT_LIMIT 1455
#define ERROR_INVALID_PRINTER_NAME 1801
#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795
#define ERROR_UNKNOWN_PORT 1796
#define ERROR_UNKNOWN_PRINTER_DRIVER 1797
#define ERROR_UNKNOWN_PRINTPROCESSOR 1798
#define ERROR_INVALID_SEPARATOR_FILE 1799
#define ERROR_INVALID_PRIORITY 1800
#define ERROR_INVALID_PRINTER_NAME 1801
#define ERROR_PRINTER_ALREADY_EXISTS 1802
#define ERROR_INVALID_PRINTER_COMMAND 1803
#define ERROR_INVALID_DATATYPE 1804
#define ERROR_INVALID_ENVIRONMENT 1805
/* HRESULT values for OLE, SHELL and other Interface stuff */
/* the codes 4000-40ff are reserved for OLE */
...
...
include/winspool.h
View file @
ee2d9d58
...
...
@@ -105,6 +105,36 @@ DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
DECL_WINELIB_TYPE_AW
(
PDRIVER_INFO_2
)
DECL_WINELIB_TYPE_AW
(
LPDRIVER_INFO_2
)
typedef
struct
_DRIVER_INFO_3A
{
DWORD
cVersion
;
LPSTR
pName
;
LPSTR
pEnvironment
;
LPSTR
pDriverPath
;
LPSTR
pDataFile
;
LPSTR
pConfigFile
;
LPSTR
pHelpFile
;
LPSTR
pDependentFiles
;
LPSTR
pMonitorName
;
LPSTR
pDefaultDataType
;
}
DRIVER_INFO_3A
,
*
PDRIVER_INFO_3A
,
*
LPDRIVER_INFO_3A
;
typedef
struct
_DRIVER_INFO_3W
{
DWORD
cVersion
;
LPWSTR
pName
;
LPWSTR
pEnvironment
;
LPWSTR
pDriverPath
;
LPWSTR
pDataFile
;
LPWSTR
pConfigFile
;
LPWSTR
pHelpFile
;
LPWSTR
pDependentFiles
;
LPWSTR
pMonitorName
;
LPWSTR
pDefaultDataType
;
}
DRIVER_INFO_3W
,
*
PDRIVER_INFO_3W
,
*
LPDRIVER_INFO_3W
;
DECL_WINELIB_TYPE_AW
(
DRIVER_INFO_3
)
DECL_WINELIB_TYPE_AW
(
PDRIVER_INFO_3
)
DECL_WINELIB_TYPE_AW
(
LPDRIVER_INFO_3
)
typedef
struct
_PRINTER_INFO_1A
{
DWORD
Flags
;
LPSTR
pDescription
;
...
...
@@ -219,19 +249,6 @@ DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
#endif
/* Status */
/* DECLARATIONS */
DWORD
WINAPI
DrvGetPrinterData16
(
LPSTR
lpPrinter
,
LPSTR
lpProfile
,
LPDWORD
lpType
,
LPBYTE
lpPrinterData
,
int
cbData
,
LPDWORD
lpNeeded
);
DWORD
WINAPI
DrvSetPrinterData16
(
LPSTR
lpPrinter
,
LPSTR
lpProfile
,
DWORD
lpType
,
LPBYTE
lpPrinterData
,
DWORD
dwSize
);
HANDLE16
WINAPI
OpenJob16
(
LPSTR
lpOutput
,
LPSTR
lpTitle
,
HDC16
hDC
);
int
WINAPI
CloseJob16
(
HANDLE16
hJob
);
int
WINAPI
WriteSpool16
(
HANDLE16
hJob
,
LPSTR
lpData
,
WORD
cch
);
int
WINAPI
DeleteJob16
(
HANDLE16
hJob
,
WORD
wNotUsed
);
int
WINAPI
StartSpoolPage16
(
HANDLE16
hJob
);
int
WINAPI
EndSpoolPage16
(
HANDLE16
hJob
);
DWORD
WINAPI
GetSpoolJob16
(
int
nOption
,
LONG
param
);
int
WINAPI
WriteDialog16
(
HANDLE16
hJob
,
LPSTR
lpMsg
,
WORD
cchMsg
);
INT
WINAPI
DeviceCapabilitiesA
(
LPCSTR
pDevice
,
LPCSTR
pPort
,
WORD
fwCapability
,
LPSTR
pOutput
,
LPDEVMODEA
pDevMode
);
INT
WINAPI
DeviceCapabilitiesW
(
LPCWSTR
pDevice
,
LPCWSTR
pPort
,
...
...
@@ -271,6 +288,10 @@ BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
BOOL
WINAPI
PrinterProperties
(
HWND
hWnd
,
HANDLE
hPrinter
);
BOOL
WINAPI
GetPrinterDriverDirectoryA
(
LPSTR
,
LPSTR
,
DWORD
,
LPBYTE
,
DWORD
,
LPDWORD
);
BOOL
WINAPI
GetPrinterDriverDirectoryW
(
LPWSTR
,
LPWSTR
,
DWORD
,
LPBYTE
,
DWORD
,
LPDWORD
);
#define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
#ifdef __cplusplus
}
/* extern "C" */
#endif
...
...
relay32/winspool.spec
View file @
ee2d9d58
...
...
@@ -91,8 +91,8 @@ type win32
188 stub GetPrinterDataA
189 stub GetPrinterDataW
190 stdcall GetPrinterDriverA(long str long ptr long ptr) GetPrinterDriverA
191 st
ub
GetPrinterDriverDirectoryA
192 st
ub
GetPrinterDriverDirectoryW
191 st
dcall GetPrinterDriverDirectoryA(str str long ptr long ptr)
GetPrinterDriverDirectoryA
192 st
dcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr)
GetPrinterDriverDirectoryW
193 stdcall GetPrinterDriverW(long str long ptr long ptr) GetPrinterDriverW
194 stdcall GetPrinterW(long long ptr long ptr) GetPrinterW
195 stub InitializeDll
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment