252 hModWinSpoolDrv =
NULL;
523 if (lpwstrRet != 0) diW.
lpszOutput = lpwstrRet;
606 docW.cbSize = lpdi->cbSize;
607 if (lpdi->lpszDocName)
613 if (lpdi->lpszOutput)
619 if (lpdi->lpszDatatype)
626 docW.lpszDocName = szDocName;
627 docW.lpszOutput = szOutput;
628 docW.lpszDatatype = szDatatype;
629 docW.fwType = lpdi->fwType;
837 DWORD dwOptimization)
#define ERROR_INVALID_PARAMETER
static ABORTPRINTER fpAbortPrinter
static const struct update_accum a3
HANDLE(WINAPI * COMMITSPOOLDATA)(HANDLE, HANDLE, DWORD)
BOOL WINAPI GdiStartPageEMF(HANDLE SpoolFileHandle)
BOOL(WINAPI * READPRINTER)(HANDLE, PVOID, DWORD, PDWORD)
LONG(WINAPI * DOCUMENTPROPERTIESW)(HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW, DWORD)
BOOL(WINAPI * ENDDOCPRINTER)(HANDLE)
INT(WINAPI * DOCUMENTEVENT)(HANDLE, HDC, INT, ULONG, PVOID, ULONG, PVOID)
struct _DOCINFOW DOCINFOW
DWORD WINAPI gdiPlaySpoolStream(DWORD a0, DWORD a1, DWORD a2, DWORD a3, DWORD a4, DWORD a5)
HANDLE WINAPI GdiGetSpoolFileHandle(LPWSTR pwszPrinterName, LPDEVMODEW pDevmode, LPWSTR pwszDocName)
static RESETPRINTERW fpResetPrinterW
static DOCUMENTPROPERTIESW fpDocumentPropertiesW
#define ERROR_INVALID_HANDLE
BOOL(WINAPI * CLOSESPOOLFILEHANDLE)(HANDLE, HANDLE)
int WINAPI AbortDoc(HDC hdc)
DWORD WINAPI GetTickCount(VOID)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
#define ERROR_NOT_ENOUGH_MEMORY
struct _W32CLIENTINFO * PW32CLIENTINFO
static const struct update_accum a4
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
BOOL(WINAPI * ENDPAGEPRINTER)(HANDLE)
#define DOCUMENTEVENT_STARTPAGE
BOOL WINAPI GdiResetDCEMF(HANDLE SpoolFileHandle, PDEVMODEW pCurrDM)
BOOL(WINAPI * CLOSEPRINTER)(HANDLE)
BOOL(WINAPI * SPLREADPRINTER)(HANDLE, LPBYTE *, DWORD)
BOOL(WINAPI * RESETPRINTERW)(HANDLE, LPPRINTER_DEFAULTSW)
static STARTDOCPRINTERW fpStartDocPrinterW
BOOL(WINAPI * SPLDRIVERUNLOADCOMPLETE)(LPWSTR)
static STARTDOCDLGW fpStartDocDlgW
int WINAPI EndPage(HDC hdc)
DWORD(WINAPI * QUERYSPOOLMODE)(HANDLE, DWORD, DWORD)
BOOL WINAPI GdiPlayEMF(LPWSTR pwszPrinterName, LPDEVMODEW pDevmode, LPWSTR pwszDocName, EMFPLAYPROC pfnEMFPlayFn, HANDLE hPageQuery)
BOOL WINAPI GdiStartDocEMF(HANDLE SpoolFileHandle, DOCINFOW *pDocInfo)
BOOL WINAPI GdiEndDocEMF(HANDLE SpoolFileHandle)
#define LDC_KILL_DOCUMENT
__kernel_entry W32KAPI INT APIENTRY NtGdiStartDoc(_In_ HDC hdc, _In_ DOCINFOW *pdi, _Out_ BOOL *pbBanding, _In_ INT iJob)
static GETSPOOLFILEHANDLE fpGetSpoolFileHandle
BOOL FASTCALL LoadTheSpoolerDrv(VOID)
BOOL WINAPI GdiPlayPageEMF(HANDLE SpoolFileHandle, HANDLE hemf, RECT *prectDocument, RECT *prectBorder, RECT *prectClip)
BOOL(WINAPI * GETPRINTERW)(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
static SEEKPRINTER fpSeekPrinter
#define DOCUMENTEVENT_ENDDOC
HANDLE WINAPI GdiGetPageHandle(HANDLE SpoolFileHandle, DWORD Page, LPDWORD pdwPageType)
static ISVALIDDEVMODEW fpIsValidDevmodeW
#define DOCUMENTEVENT_STARTDOC
DWORD WINAPI GdiGetPageCount(HANDLE SpoolFileHandle)
BOOL WINAPI GdiEndPageEMF(HANDLE SpoolFileHandle, DWORD dwOptimization)
BOOL FASTCALL EndDocPrinterEx(PVOID pvUMPDev, HANDLE hPrinter)
#define LDC_INIT_DOCUMENT
int WINAPI StartDocA(HDC hdc, CONST DOCINFOA *lpdi)
static GETPRINTERW fpGetPrinterW
#define DOCUMENTEVENT_ENDDOCPOST
#define GDI_HANDLE_GET_TYPE(h)
BOOL WINAPI GdiPrinterThunk(IN HUMPD humpd, DWORD *status, DWORD unuse)
CLOSEPRINTER fpClosePrinter
VOID GdiSAPCallback(PLDC pldc)
PLDC FASTCALL GdiGetLDC(HDC hDC)
BOOL(WINAPI * STARTPAGEPRINTER)(HANDLE)
static SPLREADPRINTER fpSplReadPrinter
BOOL FASTCALL StartPagePrinterEx(PVOID pvUMPDev, HANDLE hPrinter)
DWORD(WINAPI * STARTDOCPRINTERW)(HANDLE, DWORD, PBYTE)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiStartPage(_In_ HDC hdc)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL(CALLBACK * ABORTPROC)(HDC, int)
static QUERYREMOTEFONTS fpQueryRemoteFonts
static const struct update_accum a2
static QUERYSPOOLMODE fpQuerySpoolMode
BOOL WINAPI GdiGetDevmodeForPage(HANDLE SpoolFileHandle, DWORD dwPageNumber, PDEVMODEW *pCurrDM, PDEVMODEW *pLastDM)
DWORD FASTCALL StartDocPrinterWEx(PVOID pvUMPDev, HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiAbortDoc(_In_ HDC hdc)
HANDLE(WINAPI * GETSPOOLFILEHANDLE)(HANDLE)
static QUERYCOLORPROFILE fpQueryColorProfile
BOOL WINAPI GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle, DWORD unknown, RECT *prectDocument)
BOOL(WINAPI * QUERYCOLORPROFILE)(HANDLE, PDEVMODEW, ULONG, VOID *, ULONG, FLONG)
static ENDDOCPRINTER fpEndDocPrinter
int WINAPI StartPage(HDC hdc)
static SPLDRIVERUNLOADCOMPLETE fpSplDriverUnloadComplete
BOOL(WINAPI * GETPRINTERDRIVERW)(HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD)
static DOCUMENTEVENT fpDocumentEvent
#define DOCUMENTEVENT_ENDPAGE
int WINAPI EndFormPage(HDC hdc)
OPENPRINTERW fpOpenPrinterW
static GETPRINTERDRIVERW fpGetPrinterDriverW
static COMMITSPOOLDATA fpCommitSpoolData
HDC WINAPI GdiGetDC(HANDLE SpoolFileHandle)
BOOL(WINAPI * ABORTPRINTER)(HANDLE)
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
int WINAPI StartDocW(HDC hdc, CONST DOCINFOW *lpdi)
int WINAPI SetAbortProc(HDC hdc, ABORTPROC lpAbortProc)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
BOOL WINAPI GdiArtificialDecrementDriver(LPWSTR pDriverName, BOOL unknown)
static int FASTCALL IntEndPage(HDC hdc, BOOL Form)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEndPage(_In_ HDC hdc)
RTL_CRITICAL_SECTION semLocal
#define MultiByteToWideChar
BOOL FASTCALL EndPagePrinterEx(PVOID pvUMPDev, HANDLE hPrinter)
int WINAPI EndDoc(HDC hdc)
int WINAPI StartFormPage(HDC hdc)
BOOL(WINAPI * SEEKPRINTER)(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD, BOOL)
static READPRINTER fpReadPrinter
BOOL(WINAPI * ISVALIDDEVMODEW)(PDEVMODEW, size_t)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEndDoc(_In_ HDC hdc)
BOOL FASTCALL AbortPrinterEx(PVOID pvUMPDev, HANDLE hPrinter)
INT(CALLBACK * EMFPLAYPROC)(HDC hdc, INT iFunction, HANDLE hPageQuery)
#define ERROR_CALL_NOT_IMPLEMENTED
#define GetProcAddress(x, y)
#define RtlCopyMemory(Destination, Source, Length)
BOOL WINAPI GdiDeleteSpoolFileHandle(HANDLE SpoolFileHandle)
#define DOCUMENTEVENT_ABORTDOC
static const struct update_accum a1
static const WCHAR docW[]
BOOL(WINAPI * OPENPRINTERW)(LPWSTR, PHANDLE, LPPRINTER_DEFAULTSW)
#define DOCUMENTEVENT_STARTDOCPOST
int FASTCALL DocumentEventEx(PVOID pvUMPDev, HANDLE hPrinter, HDC hdc, int iEsc, ULONG cbIn, PVOID pvIn, ULONG cbOut, PVOID pvOut)
#define HeapFree(x, y, z)
static ENDPAGEPRINTER fpEndPagePrinter
LPWSTR(WINAPI * STARTDOCDLGW)(HANDLE, DOCINFOW *)
DWORD(WINAPI * QUERYREMOTEFONTS)(DWORD, DWORD, DWORD)
static STARTPAGEPRINTER fpStartPagePrinter
static CLOSESPOOLFILEHANDLE fpCloseSpoolFileHandle