admin
base
com
developer
drivers
ds
enduser
inetcore
inetsrv
loc
mergedcomponents
multimedia
net
printscan
ddk
dload
fax
faxsrv
inc
lib
print
drivers
embedded
spooler
dbglib
exts
idl
inc
inetpp2
inetsrv
localspl
monitors
oleprn
perflib
prtprocs
scripts
splexts
spllib
splsetup
spoolss
bidispl
client
dll
idl
perf
server
change.c
client.h
data.c
dload.c
dload.h
kmspool.c
kmspool.h
makefile
midluser.c
rpcspool.c
server.h
sources
splctrlh.c
spldata.c
splinit.c
splkernl.c
splmain.c
splr.h
splrpc.c
splstat.c
splsvr.h
spoolss.c
spoolss.mof
spoolss.prf
spoolss.rc
spoolsv.def
spoolsv.prf
srvrmem.c
srvrmem.h
winspls.c
yspool.c
yspool.h
splwow64
win32
dirs
wpnpinst
dirs
makefil0
dirs
publish
scan
ui
wia
dirs
project.mk
public
published
sdktools
shell
termsrv
tools
windows
dirs
makefil0
160 lines
2.8 KiB
C
160 lines
2.8 KiB
C
/*++
|
|
|
|
Copyright (c) 1990-1994 Microsoft Corporation
|
|
All rights reserved
|
|
|
|
Module Name:
|
|
|
|
Client.h
|
|
|
|
Abstract:
|
|
|
|
Holds Client Spooler types and prototypes
|
|
|
|
Author:
|
|
|
|
|
|
Environment:
|
|
|
|
User Mode -Win32
|
|
|
|
Revision History:
|
|
|
|
Steve Wilson (NT) (swilson) 1-Jun-95 Ported from spoolss\client\client.h
|
|
|
|
--*/
|
|
|
|
typedef int (FAR WINAPI *INT_FARPROC)();
|
|
|
|
typedef struct _GENERIC_CONTAINER {
|
|
DWORD Level;
|
|
LPBYTE pData;
|
|
} GENERIC_CONTAINER, *PGENERIC_CONTAINER, *LPGENERIC_CONTAINER ;
|
|
|
|
|
|
typedef struct _SPOOL *PSPOOL;
|
|
typedef struct _NOTIFY *PNOTIFY;
|
|
|
|
typedef struct _NOTIFY {
|
|
PNOTIFY pNext;
|
|
HANDLE hEvent; // event to trigger on notification
|
|
DWORD fdwFlags; // flags to watch for
|
|
DWORD fdwOptions; // PRINTER_NOTIFY_*
|
|
DWORD dwReturn; // used by WPC when simulating FFPCN
|
|
PSPOOL pSpool;
|
|
} NOTIFY;
|
|
|
|
typedef struct _SPOOL {
|
|
DWORD signature;
|
|
HANDLE hPrinter;
|
|
DWORD Status;
|
|
LONG cThreads; // InterlockedDecrement/Increment variable for thread synch
|
|
HANDLE hModule; // Driver UM DLL Module Handle
|
|
DWORD (*pfnWrite)();
|
|
HANDLE (*pfnStartDoc)();
|
|
VOID (*pfnEndDoc)();
|
|
VOID (*pfnClose)();
|
|
BOOL (*pfnStartPage)();
|
|
BOOL (*pfnEndPage)();
|
|
VOID (*pfnAbort)();
|
|
HANDLE hDriver; // supplied to us by driver UI dll
|
|
DWORD JobId;
|
|
} SPOOL;
|
|
|
|
//
|
|
// Change the RPC buffer size to 64K
|
|
//
|
|
#define BUFFER_SIZE 0x10000
|
|
#define SP_SIGNATURE 0x6767
|
|
|
|
#define SPOOL_STATUS_STARTDOC 0x00000001
|
|
#define SPOOL_STATUS_ADDJOB 0x00000002
|
|
#define SPOOL_STATUS_ANSI 0x00000004
|
|
|
|
|
|
#define SPOOL_FLAG_FFPCN_FAILED 0x1
|
|
#define SPOOL_FLAG_LAZY_CLOSE 0x2
|
|
|
|
|
|
DWORD
|
|
TranslateExceptionCode(
|
|
DWORD ExceptionCode
|
|
);
|
|
|
|
|
|
PNOTIFY
|
|
WPCWaitFind(
|
|
HANDLE hFind);
|
|
|
|
BOOL
|
|
ValidatePrinterHandle(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
VOID
|
|
FreeSpool(
|
|
PSPOOL pSpool);
|
|
|
|
LPVOID
|
|
DllAllocSplMem(
|
|
DWORD cb
|
|
);
|
|
|
|
|
|
BOOL
|
|
DllFreeSplMem(
|
|
LPVOID pMem
|
|
);
|
|
|
|
BOOL
|
|
FlushBuffer(
|
|
PSPOOL pSpool
|
|
);
|
|
|
|
PSECURITY_DESCRIPTOR
|
|
BuildInputSD(
|
|
PSECURITY_DESCRIPTOR pPrinterSD,
|
|
PDWORD pSizeSD
|
|
);
|
|
|
|
|
|
typedef struct _KEYDATA {
|
|
DWORD cb;
|
|
DWORD cTokens;
|
|
LPWSTR pTokens[1];
|
|
} KEYDATA, *PKEYDATA;
|
|
|
|
|
|
PKEYDATA
|
|
CreateTokenList(
|
|
LPWSTR pKeyData
|
|
);
|
|
|
|
|
|
LPWSTR
|
|
GetPrinterPortList(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
LPWSTR
|
|
FreeUnicodeString(
|
|
LPWSTR pUnicodeString
|
|
);
|
|
|
|
LPWSTR
|
|
AllocateUnicodeString(
|
|
LPSTR pPrinterName
|
|
);
|
|
|
|
LPWSTR
|
|
StartDocDlgW(
|
|
HANDLE hPrinter,
|
|
DOCINFO *pDocInfo
|
|
);
|
|
|
|
LPSTR
|
|
StartDocDlgA(
|
|
HANDLE hPrinter,
|
|
DOCINFOA *pDocInfo
|
|
);
|