(***********************************************************************)
(* DOS session Windows95/NT LONG-FILENAME functions unit for BP 7 *)
(* *)
(* (c) Denis Kaganovich, Minsk, 06.09.1996 *)
(* E-mail: mahatma@ped.belpak.minsk.by *)
(* mahatma@aete.belpak.minsk.by *)
(* 2:450/39.242@fidonet *)
(* *)
(* Based on information from Ralf Braun's INTERLIST v4.6 *)
(* *)
(* Minimal needed realisation: *)
(* - SHORT<->LONG names transformation *)
(* - long-filename Move/Rename *)
(* - volume info (maximum size of name/path, type of file system) *)
(* Additional: *)
(* - Win95 FindFirst/FindNext/FindClose (may be faster) *)
(* Win95/DOS session supports more long-filename functions, but that *)
(* not needed. *)
(* Tested - working in real & protected modes *)
(***********************************************************************)
procedure LFNGetName(SubFn:word; Src,Dst:PChar);
procedure LFNRename(NameFrom,NameTo:PChar);
procedure LFNGetVolInfo(RootName,Buf:PChar; BufSize:word;
var Flags,NameSize,PathSize);
{================ Standard pascal STRING versions: ===================}
{!!!WARNING! MAY BE BUGS - "STRING" SIZE=255 BUT LONG NAME UP TO 261! }
function sLFNGetName(SubFn:word; Src:string):string;
procedure sLFNRename(NameFrom,NameTo:string);
function sLFNGetVolInfo(RootName:string; var Flags,NameSize,PathSize):
string;
function LFNFindFirst(Path:PChar; Attr:word; var S:TLFNSearchRec):word;
procedure LFNFindNext(Handle:word; var S:TLFNSearchRec);
procedure LFNFindClose(Handle:word);
|