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.
 
 
 
 
 
 

172 lines
4.3 KiB

/*++
Copyright (c) 1997-1999 Microsoft Corporation
--*/
#ifndef _PDEV_H
#define _PDEV_H
#include <minidrv.h>
#ifdef USERMODE_DRIVER
#ifdef DbgBreakPoint
#undef DbgBreakPoint
extern VOID DbgBreakPoint(VOID);
#endif // DbgBreakPoint
#endif // USERMODE_DRIVER
#include <printoem.h>
#include <prntfont.h>
#include <winsplp.h> // #94193: shold create temp. file on spooler directory.
#define VALID_PDEVOBJ(pdevobj) \
((pdevobj) && (pdevobj)->dwSize >= sizeof(DEVOBJ) && \
(pdevobj)->hEngine && (pdevobj)->hPrinter && \
(pdevobj)->pPublicDM && (pdevobj)->pDrvProcs )
#define ASSERT_VALID_PDEVOBJ(pdevobj) ASSERT(VALID_PDEVOBJ(pdevobj))
// Debug text.
#define ERRORTEXT(s) "ERROR " DLLTEXT(s)
// OEM Signature and version.
#define OEM_SIGNATURE 'IBMW'
#define DLLTEXT(s) "IB87WRES: " s
#define OEM_VERSION 0x00010000L
/************* Value **************/
#define PAPER_SRC_FTRAY 20
#define PAPER_SRC_CAS1 21
#define PAPER_SRC_CAS2 22
#define PAPER_SRC_CAS3 23
#define PAPER_SRC_AUTO 24
#define ORIENTATION_PORTRAIT 28
#define ORIENTATION_LANDSCAPE 29
#define PAGECONTROL_BEGIN_DOC 30
#define PAGECONTROL_BEGIN_PAGE 31
#define PAGECONTROL_END_DOC 32
#define PAGECONTROL_END_PAGE 33
#define PAGECONTROL_DUPLEX_OFF 34
#define PAGECONTROL_ABORT_DOC 35
#define PAGECONTROL_POTRAIT 36
#define PAGECONTROL_LANDSCAPE 37
#define PAGECONTROL_MULTI_COPIES 38
#define PHYS_PAPER_BASE 50
#define PHYS_PAPER_A3 50
#define PHYS_PAPER_A4 51
#define PHYS_PAPER_A5 52
#define PHYS_PAPER_B4 53
#define PHYS_PAPER_B5 54
#define PHYS_PAPER_POSTCARD 55
#define PHYS_PAPER_LETTER 56
#define PHYS_PAPER_LEGAL 57
#define PHYS_PAPER_UNFIXED 58
#define PHYS_PAPER_MAX 58
#define Y_REL_MOVE 71
#define RESOLUTION_300 76
#define RESOLUTION_600 77
#define SEND_BLOCK_DATA 82
#define TONER_SAVE_MEDIUM 100
#define TONER_SAVE_DARK 101
#define TONER_SAVE_LIGHT 102
#define MAXIMGSIZE 0xF000
#define NRPEAK 0x7F
#define RPEAK 0x80
#define MASTERUNIT 1200
#define MAXLINESIZE 11817
#define TEMP_NAME_PREFIX __TEXT("~IB")
#define TRANS_BAND_Y_SIZE 1024
#define SPOOL_OUT_BUF_SIZE 1024
/************* Structure **************/
typedef struct tag_PAGEDATA{
SHORT sPageNum ;
HANDLE hPageFile ;
TCHAR TempName[MAX_PATH];
DWORD dwPageLen ; //Page length of one page in byte.
DWORD dwFilePos ; //Start Position for reading file.
LPVOID pPrePage ;
LPVOID pNextPage ;
}PAGEDATA, *LPPD ;
typedef struct SPLBUF {
DWORD dwWrite ;
DWORD dwPageLen ;
HANDLE hFile ;
TCHAR TempName[MAX_PATH];
}SPLBUF, *LPSB ;
// Status paramters for SpoolOutComp routine.
typedef struct {
INT iNRCnt;
INT iRCnt;
BYTE iPrv;
BYTE pjNRBuf[NRPEAK];
} SOCOMP, *PSOCOMP;
typedef struct tag_IBMPDEV {
ULONG ulHorzRes;
ULONG ulVertRes;
SIZEL szlPhysSize;
POINTL ptlLogSize;
POINTL ptlPhysOffset;
WORD wImgWidth;
WORD wImgHeight;
BYTE byPaperSize ;
SHORT sPageNum;
SHORT sCopyNum;
DWORD dwYmove ;
DWORD dwCurCursorY ;
DWORD dwOffset ;
DWORD wCompLen ;
SHORT sPaperSize ;
BOOL fComp ;
BOOL fChangeDirection ;
SPLBUF sb ; //to count bytes
SPLBUF sbcomp ; //to change direstions
PBYTE pTempImage ;
DWORD dwTempBufLen ;
LPPD lpFstData ;
LPPD lpCurData ;
BOOL fDocCmd ;
#define CMD_SETPAC_SIZE 31
BYTE SetPac[CMD_SETPAC_SIZE]; // DefineSession + SETPAC
SOCOMP Soc;
} IBMPDEV, *PIBMPDEV;
/************* Macro **************/
// #94193: shold create temp. file on spooler directory.
#define WRITESPOOLBUF(p, s, n) \
(((p)->pDrvProcs->DrvWriteSpoolBuf(p, s, n)) == (n))
#define PARAM(p,n) \
(NULL == (p) ? 0 : *((p)+(n)))
#define ABS(n) \
((n) > 0 ? (n) : -(n))
#endif //_PDEV_H