Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
3.1 KiB

/*++
Copyright (c) 1992,1993 Microsoft Corporation
Module Name:
psexe.h
Abstract:
This module defines the items required by the main component of pstodib,
that acts as the mediator between the spooler and actually getting data
out on a target printer.
Author:
James Bratsanos (v-jimbr) 8-Dec-1992
6-21-93 v-jimbr Added a flag to track if something was printed.
--*/
//
// Some defines for creating the error page
//
#define PS_XINCH G
#define PS_INCH 100
#define PS_HALF_INCH (PS_INCH / 2)
#define PS_QUART_INCH (PS_INCH / 4 )
#define PS_ERR_FONT_SIZE (PS_INCH / 7)
#define PS_ERR_HEADER_FONT_SIZE (PS_INCH / 6)
#define PS_ERR_LINE_WIDTH (PS_INCH / 20)
#define PS_ERR_LINE_LEN (PS_INCH * 6)
#define PS_PRINT_EMULATE_COPIES 0x00000001
#define PS_PRINT_FREE_DEVMODE 0x00000002
#define PS_PRINT_STARTDOC_INITIATED 0x00000004
typedef struct {
DWORD dwFlags;
LPDEVMODE lpDevmode;
} PRINT_ENVIRONMENT, *PPRINT_ENVIRONMENT;
typedef struct {
DWORD signature;
DWORD fsStatus;
HANDLE semPaused;
DWORD uType;
LPTSTR pPrinterName;
HANDLE hPrinter;
LPTSTR pDocument;
LPTSTR pDocumentPrintDocName;
LPTSTR pDatatype;
LPTSTR pParameters;
LPDWORD pdwFlags;
DWORD JobId;
BOOL bNeedToFreeDevmode;
PRINT_ENVIRONMENT printEnv;
HDC hDC;
HANDLE hShared;
PPSPRINT_SHARED_MEMORY pShared;
LPBYTE lpBinaryPosToReadFrom; //The place we should start copying from
BYTE BinaryBuff[512]; //Temp storage for data read from job
DWORD cbBinaryBuff; //Number of bytes in temp storage
} PSEXEDATA, *PPSEXEDATA;
#define PSEXE_SIGNATURE 0x00010001
//
// Function prototypes
//
PPSEXEDATA ValidateHandle(HANDLE hPrintProcessor);
BOOL CALLBACK PsPrintCallBack(PPSDIBPARMS,PPSEVENTSTRUCT);
BOOL PsPrintGeneratePage( PPSDIBPARMS pPsToDib, PPSEVENTSTRUCT pPsEvent);
BOOL PsGenerateErrorPage( PPSDIBPARMS pPsToDib, PPSEVENTSTRUCT pPsEvent);
BOOL PsHandleScaleEvent( PPSDIBPARMS pPsToDib, PPSEVENTSTRUCT pPsEvent);
BOOL PsHandleStdInputRequest( PPSDIBPARMS pPsToDib,PPSEVENTSTRUCT pPsEvent);
BOOL PsCheckForWaitAndAbort(PPSEXEDATA pData );
VOID PsCleanUpAndExitProcess( PPSEXEDATA pData, BOOL bAbort);
BOOL PsGetDefaultDevmode( PPSEXEDATA );
VOID PsMakeDefaultDevmodeModsAndSetupResolution( PPSEXEDATA pData,
PPSDIBPARMS ppsDibParms );
VOID PsInitPrintEnv( PPSEXEDATA pData, LPDEVMODE lpDevmode );
BOOL CALLBACK PsPrintAbortProc( HDC hdc, int iError );
BOOL PsGetCurrentPageType( PPSDIBPARMS pPsToDib, PPSEVENTSTRUCT pPsEvent);
BOOL PsPrintStretchTheBitmap( PPSEXEDATA pData,
PPSEVENT_PAGE_READY_STRUCT ppsPageReady );
BOOL PsVerifyDCExistsAndCreateIfRequired( PPSEXEDATA pData );
VOID PsLogEventAndIncludeLastError( DWORD dwErrorEvent, BOOL bError );
BOOL PsLogNonPsError(IN PPSDIBPARMS pPsToDib,IN PPSEVENTSTRUCT pPsEvent );
BOOL PsHandleBinaryFileLogicAndReturnBinaryStatus( PPSEXEDATA pData );
BOOL IsJobFromMac( PPSEXEDATA pData );