#define INCL_DOSFILEMGS #include typedef +++D/WORD+++ INT FD; /* file handle */ typedef LONG LFO; /* file offset */ typedef +++D/WORD+++ INT WORD; typedef CHAR FAR *LPSTR; typedef +++D/WORD+++ CHAR BYTE; FD APIENTRY FdCreate (LPSTR) ; FD APIENTRY FdOpen (LPSTR, BYTE) ; WORD APIENTRY CbWriteFdLpb (FD, LPSTR, WORD); WORD APIENTRY CbReadFdLpb (FD, LPSTR, WORD); LFO APIENTRY LSeekFd (FD, LFO, BYTE); INT APIENTRY EnCloseFd (FD); INT APIENTRY EnUnLinkSz (LPSTR); INT APIENTRY EnRenameSzSz (LPSTR, LPSTR); FD APIENTRY FdOpen(lpFileName, bMode) LPSTR lpFileName; BYTE bMode; { HFILE hf; USHORT usAction; if (DosOpen(lpFileName, &hf, &usAction, 0L, FILE_NORMAL, FILE_OPEN, OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE, 0l)) { return(-1); } else { return(hf); } } FD APIENTRY FdCreate(lpFileName) LPSTR lpFileName; { HFILE hf; USHORT usAction; if (DosOpen(lpFileName, &hf, &usAction, 0L, FILE_NORMAL, FILE_CREATE | FILE_OPEN, OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE, 0L)) { return(-1); } else { return(hf); } } INT APIENTRY EnCloseFd(hf) HFILE hf; { if (DosClose(hf)) { return(-1); } else { return(0); } } WORD APIENTRY CbReadFdLpb (hf,lpBuffer,cbBuffer) HFILE hf; LPSTR lpBuffer; WORD cbBuffer; { USHORT cbBytesRead; INT errCode; errCode = DosRead(hf,lpBuffer,cbBuffer,&cbBytesRead); if (errCode) { return(-1); } else { return(cbBytesRead); } } WORD APIENTRY CbWriteFdLpb (hf,lpBuffer,cbBuffer) HFILE hf; LPSTR lpBuffer; WORD cbBuffer; { USHORT cbBytesRead; INT errCode; errCode = DosWrite(hf,lpBuffer,cbBuffer,&cbBytesRead); if (errCode) { return(-1); } else { return(cbBytesRead); } } LFO APIENTRY LSeekFd (hf, lDistance, fMethod) HFILE hf; ULONG lDistance; USHORT fMethod; { ULONG lNewLocation; INT errCode; errCode = DosChgFilePtr(hf,lDistance,FILE_BEGIN,&lNewLocation); if (errCode) { return(-1); } else { return(lNewLocation); } } INT APIENTRY EnUnLinkSz(lpFileName) LPSTR lpFileName; { if (DosDelete(lpFileName,0L)) { return(-1); } else { return(0); } } INT APIENTRY EnRenameSzSz (lpOldName,lpNewName) LPSTR lpOldName; LPSTR lpNewName; { if (DosMove(lpOldName, lpNewName, 0L)) { return(-1); } else { return(0); } }