Files
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
WindowsXP/printscan/print/spooler/spoolss/server/client.h
2025-04-27 07:49:33 -04:00

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
);