118 lines
3.9 KiB
C
118 lines
3.9 KiB
C
/***************************************************************************
|
|
Name : CAS.C
|
|
Comment :
|
|
|
|
Copyright (c) Microsoft Corp. 1991, 1992, 1993
|
|
|
|
Revision Log
|
|
Date Name Description
|
|
-------- ----- ---------------------------------------------------------
|
|
***************************************************************************/
|
|
|
|
|
|
#ifdef CAS
|
|
|
|
// Copy of the DCX and PCX header from dcx.h in \wfw\efaxpump
|
|
|
|
#define MAX_DCX_PAGES 1023
|
|
|
|
typedef struct DCXHDR_s
|
|
{
|
|
DWORD id; // 4 byte integer =987654321
|
|
DWORD Offset[MAX_DCX_PAGES+1];// array of 4 byte integers showing page offsets
|
|
|
|
} DCXHDR;
|
|
|
|
typedef struct PCXHDR_s
|
|
{
|
|
char id; // always = 0Ah
|
|
char version; // value of 2 is suggested, higher allowed
|
|
char encode_method; // always = 1
|
|
char bitsperpixel; // =1 for fax mode transfer
|
|
short xtopleft;
|
|
short ytopleft;
|
|
short width;
|
|
short height;
|
|
short hDPI;
|
|
short vDPI;
|
|
char pal[48];
|
|
char reserv;
|
|
char colorplanes; // must be 1 for fax mode
|
|
short horiz;
|
|
short nPaletteInfo; // palette info. must be 1
|
|
char filler[58];
|
|
} PCXHDR;
|
|
|
|
|
|
/***------------------ Interface to CAS.C ------------------***/
|
|
|
|
BOOL __export WINAPI CASModemFind(void);
|
|
typedef BOOL (WINAPI *LPFN_CASMODEMFIND)(void);
|
|
// returns TRUE if CAS is installed, FALSE if not
|
|
|
|
VOID __export WINAPI CASInit(void);
|
|
typedef BOOL (WINAPI *LPFN_CASINIT)(void);
|
|
// init stuff, if any
|
|
|
|
VOID __export WINAPI CASDeInit(void);
|
|
typedef VOID (WINAPI *LPFN_CASDEINIT)(void);
|
|
// if you want to down any shutdown-cleanup
|
|
// (e.g. if there are pending receives, does CAS
|
|
// save them for you across a reboot?)
|
|
|
|
BOOL __export WINAPI CASSendFile(ATOM aPhone, ATOM aFileMG3, ATOM aFileIFX, ATOM aFileEFX, ATOM aFileDCX);
|
|
typedef BOOL (WINAPI *LPFN_CASSENDFILE)(ATOM aPhone, ATOM aFileMG3, ATOM aFileIFX, ATOM aFileEFX, ATOM aFileDCX);
|
|
// Send. Returns immediately with TRUE unless
|
|
// some internal DEBUGCHK-like error or multiple
|
|
// sends. Handles only one at a time & saves CAS handle
|
|
// internally
|
|
|
|
WORD __export WINAPI CASCheckSent(void);
|
|
typedef WORD (WINAPI *LPFN_CASCHECKSENT)(void);
|
|
// Checks if pending send (only one at any time), was sent.
|
|
// Returns 0 if still pending, non-zero if done, with success/error.
|
|
// The return value should be in LOBYTE=result HIBYTE=extended-error
|
|
// form. See FILET30.H, line 29-38 for valid values/combinations.
|
|
|
|
USHORT __export WINAPI CASGetNumReceived(void);
|
|
typedef USHORT (WINAPI *LPFN_CASGETNUMRECEIVED)(void);
|
|
// Get *number* of pending receives (successful or failure) only.
|
|
// Don't actually dequeue any.
|
|
|
|
DWORD __export WINAPI CASGetNextRecv(LPSTR szPath, LPSTR szFile);
|
|
typedef DWORD (WINAPI *LPFN_CASGETNEXTRECV)(LPSTR szPath, LPSTR szFile);
|
|
// gives the spool dir (recvd file in all forms _must_ be put
|
|
// there for pump to get it) and a suggested filename (8.3 format)
|
|
// which has been checked to be "safe" to create in that directory.
|
|
// File name/extension can be changed as neccesary.
|
|
// Return value must be a DWORD with the return filename atom
|
|
// in LOWORD and result/extendederr in HIWORD (i.e result
|
|
// is LOBYTE(HIWORD()) and exterr is HIBYTE(HIWORD()).
|
|
// See lines 54--66 of FILET30.H for valid return values
|
|
|
|
VOID __export WINAPI CASAbort(void);
|
|
typedef VOID (WINAPI *LPFN_CASABORT)(void);
|
|
// Abort current Send/Recv if possible.
|
|
// Return when abort is **complete**. Can stub it out currently
|
|
|
|
BOOL __export WINAPI CASSetAutoAnswer(BOOL fOn, USHORT uNumRings);
|
|
typedef BOOL (WINAPI *LPFN_CASSETAUTOANSWER)(BOOL fOn, USHORT uNumRings);
|
|
// fOn==TRUE--answer On, FALSE--answer Off
|
|
// uNumRings == after X rings. (0 or more)
|
|
|
|
|
|
BOOL __export WINAPI CASSetBC(LPBC lpbc, BCTYPE bctype);
|
|
typedef BOOL (WINAPI *LPFN_CASSETBC)(LPBC lpbc, BCTYPE bctype);
|
|
|
|
// Finally, we should also see if we can implement any of Mike
|
|
// Ginsberg's INI settings on a CAS board.
|
|
|
|
#endif // CAS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|