Kaynağa Gözat

+ imported the win16 api file functions

git-svn-id: trunk@31545 -
nickysn 10 yıl önce
ebeveyn
işleme
f46e30520a
3 değiştirilmiş dosya ile 91 ekleme ve 0 silme
  1. 5 0
      rtl/win16/win31.pp
  2. 27 0
      rtl/win16/winprocs.pp
  3. 59 0
      rtl/win16/wintypes.pp

+ 5 - 0
rtl/win16/win31.pp

@@ -184,6 +184,11 @@ function IsBadStringPtr(lpsz: LPSTR; cchMax: UINT): BOOL; external 'KERNEL';
 
 function IsTask(Task: HTASK): BOOL; external 'KERNEL';
 
+{ File I/O }
+
+function _hread(FileHandle: HFILE; Buffer: HugePointer; Bytes: LongInt): LongInt; external 'KERNEL';
+function _hwrite(FileHandle: HFILE; Buffer: HugePointer; Bytes: LongInt): LongInt; external 'KERNEL';
+
 implementation
 
 end.

+ 27 - 0
rtl/win16/winprocs.pp

@@ -183,6 +183,33 @@ function LocalInit(Segment, Start, EndPos: UINT): BOOL; external 'KERNEL';
 function LocalCompact(MinFree: UINT): UINT; external 'KERNEL';
 function LocalShrink(Seg: HLOCAL; Size: UINT): UINT; external 'KERNEL';
 
+{ File I/O }
+
+function OpenFile(FileName: LPCSTR; ReOpenBuff: LPOFSTRUCT; Style: UINT): HFILE; external 'KERNEL';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function OpenFile(FileName: LPCSTR; var ReOpenBuff: TOFStruct; Style: UINT): HFILE; external 'KERNEL';
+{$endif}
+
+function _lopen(PathName: LPCSTR; ReadWrite: SmallInt): HFILE; external 'KERNEL';
+function _lcreat(PathName: LPCSTR; Attribute: SmallInt): HFILE; external 'KERNEL';
+
+function _lclose(FileHandle: HFILE): HFILE; external 'KERNEL';
+
+function _llseek(FileHandle: HFILE; Offset: LONG; Origin: SmallInt): LONG; external 'KERNEL';
+
+function _lread(FileHandle: HFILE; Buffer: HugePointer; Bytes: UINT): UINT; external 'KERNEL';
+function _lread(FileHandle: HFILE; Buffer: FarPointer; Bytes: UINT): UINT; external 'KERNEL';
+function _lwrite(FileHandle: HFILE; Buffer: HugePointer; Bytes: UINT): UINT; external 'KERNEL';
+function _lwrite(FileHandle: HFILE; Buffer: FarPointer; Bytes: UINT): UINT; external 'KERNEL';
+
+function GetTempFileName(DriveLetter: BYTE; PrefixString: LPCSTR; Unique: UINT; TempFileName: LPSTR): SmallInt; external 'KERNEL';
+function GetTempFileName(DriveLetter: Char; PrefixString: LPCSTR; Unique: UINT; TempFileName: LPSTR): SmallInt; external 'KERNEL';
+function GetTempDrive(DriveLetter: Char): BYTE; external 'KERNEL';
+
+function GetDriveType(Drive: SmallInt): UINT; external 'KERNEL';
+
+function SetHandleCount(Number: UINT): UINT; external 'KERNEL';
+
 implementation
 
 function LOBYTE(w: Word): Byte;

+ 59 - 0
rtl/win16/wintypes.pp

@@ -164,6 +164,65 @@ const
   LMEM_DISCARDED   = $4000;
   LMEM_LOCKCOUNT   = $00FF;
 
+{ File I/O }
+type
+  HFILE = SmallInt;
+
+const
+  HFILE_ERROR = HFILE(-1);
+
+type
+{ OpenFile() Structure }
+  POFSTRUCT = ^OFSTRUCT;
+  NPOFSTRUCT = ^OFSTRUCT; near;
+  LPOFSTRUCT = ^OFSTRUCT; far;
+  OFSTRUCT = record
+    cBytes: BYTE;
+    fFixedDisk: BYTE;
+    nErrCode: UINT;
+    reserved: array [0..3] of BYTE;
+    szPathName: array [0..127] of char;
+  end;
+  TOFStruct = OFSTRUCT;
+
+const
+{ OpenFile() Flags }
+  OF_READ             = $0000;
+  OF_WRITE            = $0001;
+  OF_READWRITE        = $0002;
+  OF_SHARE_COMPAT     = $0000;
+  OF_SHARE_EXCLUSIVE  = $0010;
+  OF_SHARE_DENY_WRITE = $0020;
+  OF_SHARE_DENY_READ  = $0030;
+  OF_SHARE_DENY_NONE  = $0040;
+  OF_PARSE            = $0100;
+  OF_DELETE           = $0200;
+  OF_VERIFY           = $0400;      { Used with OF_REOPEN }
+  OF_SEARCH           = $0400;      { Used without OF_REOPEN }
+  OF_CANCEL           = $0800;
+  OF_CREATE           = $1000;
+  OF_PROMPT           = $2000;
+  OF_EXIST            = $4000;
+  OF_REOPEN           = $8000;
+
+{ _lopen() flags }
+  READ       = 0;
+  WRITE      = 1;
+  READ_WRITE = 2;
+
+{ _llseek origin values }
+  SEEK_SET = 0;
+  SEEK_CUR = 1;
+  SEEK_END = 2;
+
+{ GetTempFileName() Flags }
+  TF_FORCEDRIVE = BYTE($80);
+
+{ GetDriveType return values }
+  DRIVE_REMOVABLE = 2;
+  DRIVE_FIXED     = 3;
+  DRIVE_REMOTE    = 4;
+
 implementation
 
 end.