Ïpîñòî î÷åíü õî÷åòñÿ ïîpàáîòàòü ñ shell functions.
 ýòîì ïðèìåðå äåëàåòñÿ è ýòî -
procedure TForm1.Button1Click(Sender: TObject);
procedure madd(s:string);
begin
memo1.lines.add(s);
end;
VAR
ppmalloc:imalloc;
id:ishellfolder;
pi:pitemidlist;
lpname:tstrret;
begin
if succeeded(shgetspecialfolderlocation(0,CSIDL_PROGRAMS,pi)) then
begin
madd('Succeeded programs location');
if succeeded(shgetdesktopfolder(id)) then
begin
madd('Succeeded get desktop folder');
if succeeded(id.getdisplaynameof(pi,0,lpname)) then
begin
madd('Succeeded get display name');
if lpname.uType=2 then
begin
madd(lpname.cstr);
end;
end
else
madd('UnSucceeded get display name');
end
else
madd('UnSucceeded get desktop folder');
end
else
madd('UNSucceeded programs location');
end;
Denis Tanayev
denis@demo.ru