/* printer.h contains the definitions of the functions in _SORT, _BRUTE, _SPOOL. */ #ifdef OLDWAY #define PASCAL #define LONG long #define NULL 0 #define TRUE 1 #define FALSE 0 #define ERROR (-1) #define FAR far #define NEAR near #define VOID void #define REGISTER register /* file IO flags */ #define O_RDONLY 0x0000 #define O_WRONLY 0x0001 #define O_RDWR 0x0002 #define O_APPEND 0x0008 /* writes done at eof */ #define OF_REOPEN 0x8000 #define OF_EXIST 0x4000 #define OF_PROMPT 0x2000 #define OF_CREATE 0x1000 #define OF_CANCEL 0x0800 #define OF_VERIFY 0x0400 #define OF_DELETE 0x0200 #define O_TEXT 0x4000 /* file mode is text (translated) */ #define O_BINARY 0x8000 /* file mode is binary (untranslated) */ #define SP_CREATE O_WRONLY | OF_CREATE #define SP_OPEN O_RDONLY | OF_EXIST #define SP_REOPEN O_RDWR | OF_REOPEN | OF_PROMPT | OF_CANCEL typedef int (FAR * FARPROC)(); typedef int (NEAR * NEARPROC)(); typedef unsigned LONG DWORD; typedef DWORD (FAR * DWORDFARPROC)(); typedef unsigned short int WORD; typedef unsigned char BYTE; typedef WORD HANDLE; typedef HANDLE HWND; typedef HANDLE HDC; typedef WORD ATOM; typedef int BOOLEAN; typedef char *NEARP; typedef char FAR *FARP; typedef HANDLE GLOBALHANDLE; typedef HANDLE LOCALHANDLE; typedef unsigned char *PSTR; typedef unsigned char far *LPSTR; typedef short BOOL; typedef long FAR *LPLONG; #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<=(b)?(a):(b)) #define ABS(x) (((x) >= 0) ? (x) : (-(x))) #define LWORD(x) ((short)((x)&0xFFFF)) #define HWORD(y) ((short)(((y)>>16)&0xFFFF)) #define MAKELONG(h,l) ((long)(((WORD)l)|(((long)h)<<16))) #define LOBYTE(w) ((BYTE)w) #define HIBYTE(w) (((WORD)w >> 8) & 0xff) #define MAKEPOINT(l) (*((POINT *)&l)) /* Interface to global memory manager */ #define GMEM_SHAREALL 0x2000 #define GMEM_FIXED 0x00 #define GMEM_MOVEABLE 0x02 #define GMEM_ZEROINIT 0x40 #define GMEM_DISCARDABLE 0x0F00 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) /* Interface to local memory manager */ #define LMEM_FIXED 0x0000 #define LMEM_MOVEABLE 0x0002 #define LMEM_NOCOMPACT 0x0010 #define LMEM_NODISCARD 0x0020 #define LMEM_ZEROINIT 0x0040 #define LMEM_MODIFY 0x0080 #define LMEM_DISCARDABLE 0x0F00 /* Exported procedures for KERNEL module */ /* Spooler escapes */ #define SE_JOBTIME 0x0001 /* time out for printer */ #define SE_SETCALLBACK 0x0002 /* set callback function */ #define SE_MARKCALLBACK 0x0003 /* write mark for call back */ /* Exported procedures for KERNEL module */ VOID far PASCAL FatalExit( int ); HANDLE far PASCAL LoadModule(LPSTR, LPSTR); VOID far PASCAL FreeModule(HANDLE); HANDLE far PASCAL GetModuleHandle(FARP); FARPROC far PASCAL GetProcAddress(HANDLE, FARP); HANDLE far PASCAL GlobalAlloc( WORD, DWORD ); HANDLE far PASCAL GlobalReAlloc( HANDLE, DWORD, WORD ); HANDLE far PASCAL GlobalFree( HANDLE ); FARP far PASCAL GlobalLock( HANDLE ); BOOL far PASCAL GlobalUnlock( HANDLE ); LONG far PASCAL GlobalSize( HANDLE ); LONG far PASCAL GlobalFlags( HANDLE ); /* task scheduler routines */ extern void far PASCAL Yield(void); extern BOOL far PASCAL WaitEvent(HANDLE); extern BOOL far PASCAL PostEvent(HANDLE); extern HANDLE far PASCAL GetCurrentTask(void); short FAR PASCAL GetProfileString(LPSTR, LPSTR, LPSTR, LPSTR, short); BOOL FAR PASCAL WriteProfileString( LPSTR, LPSTR, LPSTR ); /* Interface to the resource manager */ HANDLE FAR PASCAL FindResource( HANDLE, LPSTR, LPSTR ); HANDLE FAR PASCAL LoadResource( HANDLE, HANDLE ); BOOL FAR PASCAL FreeResource( HANDLE ); char FAR * FAR PASCAL LockResource( HANDLE ); FARPROC FAR PASCAL SetResourceHandler( HANDLE, LPSTR, FARPROC ); HANDLE FAR PASCAL AllocResource( HANDLE, HANDLE, DWORD ); WORD FAR PASCAL SizeofResource( HANDLE, HANDLE ); int FAR PASCAL AccessResource( HANDLE, HANDLE ); #define WM_INITDIALOG 0x0110 #define WM_COMMAND 0x0111 #define WM_ENDDIALOG 0x0088 #define WM_SPOOLERSTATUS 0x002a /* ;Internal */ #define PR_JOBSTATUS 0x0000 typedef struct { BYTE cBytes; /* length of structure */ BYTE fFixedDisk; /* non-zero if file located on non- */ /* removeable media */ WORD nErrCode; /* DOS error code if OpenFile fails */ BYTE reserved[ 4 ]; BYTE szPathName[ 128 ]; } OFSTRUCT; typedef OFSTRUCT FAR * LPOFSTRUCT; int FAR PASCAL OpenFile( LPSTR, LPOFSTRUCT, WORD ); BYTE FAR PASCAL GetTempDrive( BYTE ); int far PASCAL OpenPathname( LPSTR, int ); int far PASCAL DeletePathname( LPSTR ); int far PASCAL _lopen( LPSTR, int ); void far PASCAL _lclose( int ); int far PASCAL _lcreat( LPSTR, int ); BOOL far PASCAL _ldelete( LPSTR ); WORD far PASCAL _ldup( int ); LONG far PASCAL _llseek( int, long, int ); WORD far PASCAL _lread( int, LPSTR, int ); WORD far PASCAL _lwrite( int, LPSTR, int ); int far PASCAL lstrcmp( LPSTR, LPSTR ); LPSTR far PASCAL lstrcpy( LPSTR, LPSTR ); LPSTR far PASCAL lstrcat( LPSTR, LPSTR ); int far PASCAL lstrlen( LPSTR ); LPSTR far PASCAL lstrbscan( LPSTR, LPSTR ); LPSTR far PASCAL lstrbskip( LPSTR, LPSTR ); /* new Escape support */ #define GETEXTENDEDTEXTMETRICS 256 #define GETEXTENTTABLE 257 #define EXTTEXTOUT 512 #else #define NOATOM #define NOGDI #define NOGDICAPMASKS #define NOMETAFILE #define NOMSG #define NORASTEROPS #define NOSCROLL #define NOSOUND #define NOSYSMETRICS #define NOTEXTMETRIC #define NOWH #define NOCOMM #define NOKANJI #include "Windows.h" #include "winexp.h" #undef NOATOM #undef NOGDI #undef NOGDICAPMASKS #undef NOMETAFILE #undef NOMSG #undef NORASTEROPS #undef NOSCROLL #undef NOSOUND #undef NOSYSMETRICS #undef NOTEXTMETRIC #undef NOWH #undef NOCOMM #undef NOKANJI #define NOPTRC /* don't allow gdidefs.inc to redef these */ #define PTTYPE POINT #endif /* OLDWAY */ /* GDI internal routines */ short FAR PASCAL SetEnvironment(LPSTR, LPSTR, WORD); short FAR PASCAL GetEnvironment(LPSTR, LPSTR, WORD); /* _SORT export routines */ HANDLE FAR PASCAL CreatePQ(short); short FAR PASCAL MinPQ(HANDLE); short FAR PASCAL ExtractPQ(HANDLE); short FAR PASCAL InsertPQ(HANDLE, short, short); short FAR PASCAL SizePQ(HANDLE, short); void FAR PASCAL DeletePQ(HANDLE); /* _SPOOL export routines */ HANDLE FAR PASCAL OpenJob(LPSTR, LPSTR, HANDLE); short FAR PASCAL StartSpoolPage(HANDLE); short FAR PASCAL EndSpoolPage(HANDLE); short FAR PASCAL WriteSpool(HANDLE, LPSTR, short); short FAR PASCAL CloseJob(HANDLE); short FAR PASCAL DeleteJob(HANDLE, short); short FAR PASCAL WriteDialog(HANDLE, LPSTR, short); short FAR PASCAL WriteMark(HANDLE, LPSTR, short); BOOL FAR PASCAL AddFileSpoolJob(LPSTR, LPSTR, BOOL, LPSTR); BOOL FAR PASCAL SpoolEscape(HANDLE, short, short, LPSTR, LPSTR); long FAR PASCAL QueryJob(HANDLE, short); short FAR PASCAL QueryAbort(HANDLE, short); /* _SPOOL constants for queryjob */ #define SP_QUERYVALIDJOB 30 #define SP_QUERYDISKAVAIL 0x1004 #define USA_COUNTRYCODE 1 #define PQERROR (-1)