function getnamefrompidl(pidl:pitemidlist) : string;
var
sfi : shfileinfo;
begin
shgetfileinfo(pchar(pidl), 0, sfi, sizeof(sfi), shgfi_displayname or shgfi_pidl);
result := strpas(sfi.szdisplayname);
end;
function getpathfrompidl(pidl:pitemidlist) : string;
var
str : string;
begin
setlength(str, max_path);
shgetpathfromidlist(pidl, pchar(str));
str := pchar(str);
result := str;
end;
procedure getsmalliconfrompidl(pidl:pitemidlist; var iml:himagelist; var index:integer);
var
sfi : shfileinfo;
begin
iml := shgetfileinfo(pchar(pidl), 0, sfi, sizeof(sfi), shgfi_sysiconindex or shgfi_smallicon or shgfi_pidl);
index := sfi.iicon;
end;
procedure getsmalliconfrompath(const path:string; var iml:himagelist; var index:integer);
var
sfi : shfileinfo;
begin
iml := shgetfileinfo(pchar(path), 0, sfi, sizeof(sfi), shgfi_sysiconindex or shgfi_smallicon);
index := sfi.iicon;
end;