Copyright (C) 1993, Digital Equipment Corporation
All rights reserved.
See the file COPYRIGHT for a full description.
Last modified on Wed Jun 30 17:12:13 PDT 1993 by mcjones
modified on Tue Mar 16 12:30:07 PST 1993 by mjordan
INTERFACE FileWin32;
IMPORT File, OSError, Pipe, WinNT;
In this interface we reveal that every Win32 File.T
has a handle
field, handle
.
TYPE T = File.Public OBJECT
handle: WinNT.HANDLE;
ds: DirectionSet;
END;
REVEAL File.T <: T;
TYPE
Direction = {Read, Write};
DirectionSet = SET OF Direction;
CONST
Read = DirectionSet{Direction.Read};
Write = DirectionSet{Direction.Write};
ReadWrite = DirectionSet{Direction.Read, Direction.Write};
PROCEDURE New(h: WinNT.HANDLE; ds: DirectionSet): File.T RAISES {OSError.E};
Create the appropriate subtype of File.T
, based on the
characteristics of the opened file handle h
and directions ds
.
If WinBase.GetFileType(h) returns
FILE_TYPE_UNKNOWN, the result
will be
NIL.
PROCEDURE NewPipe(h: WinNT.HANDLE; ds: DirectionSet): Pipe.T;
Create a Pipe.T
based on h
and ds
. It is an unchecked (but safe)
error if h
is not WinBase.FILE_TYPE_PIPE
.
END FileWin32.