[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]

{
> Does anyone know how to lock parts of a file in pascal?  I'm working on JAM
> message base support, and I need to know how to lock it (and check if it's
> locked, etc).  Example code appreciated. (I have to lock the first byte of
> a file.  How exactly would I go about doing this?)
}

function FLock(Lock:byte; Handle: Word; Pos,Len: LongInt): Word; Assembler;
ASM
  mov   AL,Lock   { subfunction 0: lock region   }
                  { subfunction 1: unlock region }
  mov   AH,$5C    { DOS function $5C: FLOCK    }
  mov   BX,Handle { put FileHandle in BX       }
  les   DX,Pos
  mov   CX,ES     { CX:DX begin position       }
  les   DI,Len
  mov   SI,ES     { SI:DI length lockarea      }
  int   $21       { Call DOS ...               }
  jb    @End      { if error then return AX    }
  xor   AX,AX     { else return 0              }
 @End:
end {FLock};

[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]