250 lines
6.6 KiB
C
250 lines
6.6 KiB
C
|
/*=========================================================================
|
|||
|
*
|
|||
|
* LPR.H : Master Header file for PPR
|
|||
|
*
|
|||
|
*-------------------------------------------------------------------------
|
|||
|
*
|
|||
|
* Possible defines (differences mostly in network connections):
|
|||
|
*
|
|||
|
* DOS - DOS 3.x
|
|||
|
* OS2 - OS/2
|
|||
|
* X86 - 286 Xenix
|
|||
|
* (default) - SUN Xenix
|
|||
|
*
|
|||
|
* Normal combinations:
|
|||
|
*
|
|||
|
* if DOS || OS2 || X86
|
|||
|
* non-68k
|
|||
|
* else
|
|||
|
* 68k
|
|||
|
* endif
|
|||
|
*
|
|||
|
* if DOS || OS2
|
|||
|
* non-Xenix
|
|||
|
* else
|
|||
|
* Xenix
|
|||
|
* endif
|
|||
|
*
|
|||
|
* Currenently active code, is only being compiled for DOS and OS/2.
|
|||
|
* Support for other platforms is untested.
|
|||
|
*
|
|||
|
**************************************************************************/
|
|||
|
|
|||
|
#define VERSION "2.3a" // Current Version number of PPR
|
|||
|
#define ANALYST "RobertH" // Current responsible (sic.) programmer
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#define COMPANY "Microsoft"
|
|||
|
#define CONFIDENTIAL "CONFIDENTIAL"
|
|||
|
|
|||
|
|
|||
|
#define cchArgMax 128
|
|||
|
|
|||
|
#define cchLineMax 256
|
|||
|
|
|||
|
# define PRINTER "lpt1"
|
|||
|
# define strnxcmp _strnicmp
|
|||
|
# define strcmpx _strcmpi
|
|||
|
# define SILENT " >NUL"
|
|||
|
# define szROBin "rb"
|
|||
|
# define szWOBin "wb"
|
|||
|
|
|||
|
#define DEFAULT "default"
|
|||
|
#define OPTS "opts"
|
|||
|
#define RESETPRINTER "\033E"
|
|||
|
|
|||
|
/* [01]o - landscape/portrait (0 - portrait)
|
|||
|
#D - lines per inch (8 or 6)
|
|||
|
#C - vertical motion index (# 1/48in)
|
|||
|
0p - fixed pitch
|
|||
|
#h - pitch
|
|||
|
#v point size
|
|||
|
#t - type face (0 - line printer; 3 - courier)
|
|||
|
|
|||
|
These sequences assume that the printer has been reset once before hand.
|
|||
|
*/
|
|||
|
|
|||
|
#define BEGINBANNER "\033&l1o6D\033(8U\033(s0p10h12v3T"
|
|||
|
#define BEGINPORTRAIT "\033&l0o7.7C\033(8U\033(s0p10h12v3T"
|
|||
|
#define SELECTFRONTPAGE "\033&a1G"
|
|||
|
#define SELECTNEXTPAGE "\033&a0G"
|
|||
|
#define BEGINDUPLEXVERT "\033&l1S"
|
|||
|
#define BEGINDUPLEXHOR "\033&l2S"
|
|||
|
#define BEGINSIMPLEX "\033&l0S"
|
|||
|
|
|||
|
#define MOVETOTOP "\033&a1R"
|
|||
|
|
|||
|
#define rowLJMax 62 /* lines per page on laser jet */
|
|||
|
#define colLJMax 175 /* columns per page on laser jet */
|
|||
|
#define colLJPortMax 80 /* columns per page in portrait mode */
|
|||
|
#define rowLJBanMax 50 /* rows on banner page */
|
|||
|
#define colLJBanMax 105 /* columns on banner page */
|
|||
|
|
|||
|
#define rowLPMax 66 /* lines per page on line printer */
|
|||
|
#define colLPMax 132 /* columns per page on line printer */
|
|||
|
|
|||
|
#define rowPSMax 62 /* lines per page on laserwriter */
|
|||
|
#define colPSMax 170 /* columns per page on laserwriter */
|
|||
|
#define colPSPortMax 85 /* columns per page in portrait mode */
|
|||
|
#define rowPSBanMax 48 /* rows on banner page */
|
|||
|
#define colPSBanMax 115 /* columns on banner page */
|
|||
|
|
|||
|
/* Note: The following must be at least the maximum
|
|||
|
* of all the possible printer values. */
|
|||
|
#define rowMax 100 /* number of lines in page image */
|
|||
|
#define colMax 200 /* number of columns in page image */
|
|||
|
|
|||
|
#define cchLNMax 6 /* number of columns for line number */
|
|||
|
#define LINUMFORMAT "%5d " /* format to print line number in */
|
|||
|
|
|||
|
#define colGutDef 5 /* default column of gutter */
|
|||
|
|
|||
|
#define HT ((char) 9)
|
|||
|
#define LF ((char) 10)
|
|||
|
#define FF ((char) 12)
|
|||
|
#define CR ((char) 13)
|
|||
|
#define BS ((char) '\b')
|
|||
|
|
|||
|
// supported Laserjet symbol sets - used by aszSymSet
|
|||
|
|
|||
|
#define BEGINLANDUSASCII 0x0000
|
|||
|
#define BEGINLANDROMAN8 0x0001
|
|||
|
#define BEGINLANDIBMPC 0x0002 // Not available on early models ?
|
|||
|
|
|||
|
#if !defined (ERROR_ALREADY_ASSIGNED)
|
|||
|
#define ERROR_ALREADY_ASSIGNED 85
|
|||
|
#endif
|
|||
|
|
|||
|
/* return index of beginning col of column icol for columns col wide */
|
|||
|
#define ColBeginIcol(iCol,col) ((fBorder ? 1 : 0) + (iCol)*(col+1) )
|
|||
|
|
|||
|
extern int colTab; /* expand tabs every colTab columns */
|
|||
|
extern long lcbOutLPR;
|
|||
|
extern char szPName[];
|
|||
|
extern char szNet[];
|
|||
|
extern char szPass[];
|
|||
|
extern char *szPDesc;
|
|||
|
extern int cCol;
|
|||
|
extern int cCopies;
|
|||
|
extern int colGutter;
|
|||
|
extern int colText;
|
|||
|
extern int colWidth;
|
|||
|
extern int colMac;
|
|||
|
extern int rowMac;
|
|||
|
extern int rowPage;
|
|||
|
extern USHORT usSymSet;
|
|||
|
extern char *aszSymSet[];
|
|||
|
extern char page[rowMax][colMax+1];
|
|||
|
extern BOOL fNumber;
|
|||
|
extern BOOL fDelete;
|
|||
|
extern BOOL fRaw;
|
|||
|
extern BOOL fBorder;
|
|||
|
extern BOOL fLabel;
|
|||
|
extern BOOL fLaser;
|
|||
|
extern BOOL fPostScript;
|
|||
|
|
|||
|
extern BOOL fPSF;
|
|||
|
extern char szPSF[];
|
|||
|
extern BOOL fPCondensed;
|
|||
|
|
|||
|
extern BOOL fConfidential;
|
|||
|
extern BOOL fVDuplex;
|
|||
|
extern BOOL fHDuplex;
|
|||
|
extern BOOL fSilent;
|
|||
|
extern int cBanner;
|
|||
|
extern char chBanner;
|
|||
|
extern char *szBanner;
|
|||
|
extern char *szStamp;
|
|||
|
extern BOOL fForceFF;
|
|||
|
extern BOOL fPortrait;
|
|||
|
extern BOOL fFirstFile;
|
|||
|
|
|||
|
|
|||
|
/* VARARGS */
|
|||
|
void __cdecl Fatal(char *,...);
|
|||
|
void __cdecl Error(char *,...);
|
|||
|
void PrinterDoOptSz(char *);
|
|||
|
char * SzGetSzSz(char *, char *);
|
|||
|
|
|||
|
|
|||
|
/* from lpfile.c */
|
|||
|
|
|||
|
|
|||
|
BOOL FRootPath(char *, char *);
|
|||
|
char* __cdecl fgetl(char *, int, FILE *);
|
|||
|
FILE * PfileOpen(char *, char *);
|
|||
|
char *SzFindPath(char *, char *, char *);
|
|||
|
|
|||
|
/* from lplow.c*/
|
|||
|
|
|||
|
void SetupRedir(void);
|
|||
|
void ResetRedir(void);
|
|||
|
BOOL QueryUserName(char *);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
int EndRedir(char *);
|
|||
|
int SetPrnRedir(char *, char *);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* from lpprint.c */
|
|||
|
|
|||
|
void OutLPR(char *, int);
|
|||
|
void OutLPRPS(char *, int);
|
|||
|
void OutLPRPS7(char *, int);
|
|||
|
BOOL FKeyword(char *);
|
|||
|
void InitPrinter(void);
|
|||
|
void MyOpenPrinter(void);
|
|||
|
void FlushPrinter(void);
|
|||
|
void MyClosePrinter(void);
|
|||
|
char *SzGetSzSz(char *, char *);
|
|||
|
char *SzGetPrnName(char *, char *);
|
|||
|
BOOL FParseSz(char *);
|
|||
|
void SetupPrinter(void);
|
|||
|
|
|||
|
|
|||
|
/* from lppage.c */
|
|||
|
|
|||
|
void BannerSz(char *, int);
|
|||
|
void SzDateSzTime(char *, char *) ;
|
|||
|
void FlushPage(void);
|
|||
|
void InitPage(void);
|
|||
|
void RestoreTopRow(void);
|
|||
|
void PlaceTop(char *, int, int, int);
|
|||
|
void PlaceNumber(int);
|
|||
|
void LabelPage(void);
|
|||
|
BOOL FilenamX(char *, char *);
|
|||
|
void AdvancePage(void);
|
|||
|
void XoutNonPrintSz(char * );
|
|||
|
void LineOut(char *, BOOL);
|
|||
|
void RawOut(char *, int);
|
|||
|
int FileOut(char *);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* from lpr.c */
|
|||
|
|
|||
|
|
|||
|
void Abort(void);
|
|||
|
char * SzGetArg(char ** , int *, char **[] );
|
|||
|
int WGetArg(char **, int *, char **[] , int, char *);
|
|||
|
void DoOptSz(char * );
|
|||
|
void DoIniOptions();
|
|||
|
|
|||
|
/* from pspage.c */
|
|||
|
|
|||
|
void block_flush(char [], int, int);
|
|||
|
void VertLine(char, int, int, int);
|
|||
|
void HorzLine(char, int, int, int);
|
|||
|
void FillRectangle(char, int, int, int, int);
|
|||
|
void WriteSzCoord(char *, int, int);
|
|||
|
void OutCmpLJ(char * ,int );
|
|||
|
void OutEncPS(char *, int);
|
|||
|
void OutCmpPS(char *,int );
|
|||
|
int CchNoTrail(char [],int);
|
|||
|
void OutRectangle(int, int, int, int);
|
|||
|
|