unsigned year : 7; /* binary year for directory entry, offset from 1980 */
}
FTIME = WORD;
{
unsigned twosecs : 5; /* binary number of two-second increments */
unsigned minutes : 6; /* binary number of minutes */
unsigned hours : 5; /* binary number of hours */
}
{ Note that this structure needs to be byte packed!! }
FILESTATUS = PACKED RECORD
fdateCreation : FDATE; { date of file creation }
ftimeCreation : FTIME; { time of file creation }
fdateLastAccess : FDATE; { date of last access }
ftimeLastAccess : FTIME; { time of last access }
fdateLastWrite : FDATE; { date of last write }
ftimeLastWrite : FTIME; { time of last write }
cbFile : INTEGER4; { file size (end of data) }
cbFileAlloc : INTEGER4; { file allocated size }
attrFile : WORD; { attributes of the file }
cbList : INTEGER4; { file EA structure size }
END;
{ Since the next four structures are self-defining, they cannot be readily
declared in Pascal. [Or C/C++ for that matter!]
GEA = RECORD
cbName : BYTE; /* name length not including NULL */
szName : STRING(cbName); /* attribute name */
filler : CHAR; /* must be CHR(0) */
END;
FEA = RECORD
fEAflag : BYTE; /* flags */
cbName : BYTE; /* name length not including NULL */
cbValue : WORD; /* value length */
szName : STRING(cbName); /* attribute name */
filler : CHAR; /* must be CHR(0) */
aValue : STRING(cbValue); /* attribute value -- offset varies with cbName */
END;
GEALIST = RECORD
cbList : INTEGER4; /* total bytes of structure including full list */
list : STRING(cbList); /* variable length GEA structures */
END;
FEALIST = RECORD
cbList : INTEGER4; /* total bytes of structure including full list */
list : STRING(cbList); /* variable length FEA structures */
END;
{ End of self-defining structures }
EAOP = RECORD
fpGEAList : ADSMEM; { general EA list }
fpFEAList : ADSMEM; { full EA list }
oError : INTEGER4;
END;
{ The following type has been translated from the OS/2 Warp Developer's Toolkit 4.0 }
STARTDATA = RECORD
Length : WORD; { The length of the data structure, in bytes, including Length itself. }
Related : WORD; { An indicator which specifies whether the session created is related to the calling session. }
FgBg : WORD; { An indicator which specifies whether the new session should be started in the foreground or background. }
TraceOpt : WORD; { An indicator which specifies whether the program started in the new session should be executed under conditions for tracing. }
PgmTitle : PCSZ; { Address of an ASCIIZ string that contains the program title. }
PgmName : PCSZ; { The address of an ASCIIZ string that contains the file specification of the program to be loaded. }
PgmInputs : PCSZ; { Either 0 or the address of an ASCIIZ string that contains the input arguments to be passed to the program. }
TermQ : PCSZ; { Either 0 or the address of an ASCIIZ string that contains the file specification of a system queue. }
Environment : PCSZ; { The address of an environment string to be passed to the program started in the new session. }
InheritOpt : WORD; { Specifies whether the program started in the new session should inherit the calling program's environment and open file handles. }
SessionType : WORD; { The type of session that should be created for this program. }
IconFile : PCSZ; { Either 0 or the address of an ASCIIZ string that contains the file specification of an icon definition. }
PgmHandle : INTEGER4; { Either 0 or the program handle. }
PgmControl : WORD; { An indicator which specifies the initial state for a windowed application. }
InitXPos : WORD; { The initial x-coordinate, in pels, for the initial session window. }
InitYPos : WORD; { The initial y-coordinate, in pels, for the initial session window. }
InitXSize : WORD; { The initial x extent, in pels, for the initial session window. }
InitYSize : WORD; { The initial y extent, in pels, for the initial session window. }
Reserved : WORD; { Reserved; must be zero. }
ObjectBuffer : ADSMEM; { Buffer in which the name of the object that contributed to the failure of DosExecPgm is returned. }
ObjectBuffLen : INTEGER4; { The length, in bytes, of the buffer pointed to by ObjectBuffer. }