mirror of https://github.com/lianthony/NT4.0
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.
151 lines
2.7 KiB
151 lines
2.7 KiB
#define INCL_DOSFILEMGS
|
|
#include <os2.h>
|
|
|
|
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);
|
|
}
|
|
}
|