Contributor: ANDREW EIGUS { EH> I am looking for a way to determine a filehandles' attributes, like is EH> possible in OS/2. EH> The attributes I like to query (and maybe set), are the standard-file EH> attribs. Still I cannot find a way to get to them except with the EH> filename, and a dos interrupt. What I am looking for is a dos interrupt EH> that does exactly the same, but uses a filehandle instead of a filename. No no no, file attributes can be returned/set only via DOS function 43h that assumes DS:DX point to a ASCIIZ file name. :( { File attributes (combine these when setting) } faNormal = $0000; faReadOnly = $0001; faHidden = $0002; faSysFile = $0004; faVolumeID = $0008; faDirectory = $0010; faArchive = $0020; faAnyFile = $003F; Function GetFileAttr(FileName : PChar) : integer; assembler; { Retrieves the attribute of a given file. The result is returned by DosError } Asm MOV DosError,0 PUSH DS LDS DX,FileName MOV AX,4300h INT 21h POP DS JNC @@noerror MOV DosError,AX { save error code in DOS global variable } @@noerror: MOV AX,CX End; { GetFileAttr } Procedure SetFileAttr(FileName : PChar; Attr : word); assembler; { Sets the new attribute to a given file. The result is returned by DosError } Asm MOV DosError,0 PUSH DS LDS DX,FileName MOV CX,Attr MOV AX,4301h INT 21h POP DS JC @@noerror MOV DosError,AX @@noerror: End; { SetFileAttr }