Àêæàí â ñåòè - Íà óðîâåíü ââåðõ(W32) Êàê ïîëó÷èòü èìÿ ïàïêè pàáî÷åãî ñòîëà (íå ÷åpåç registry)?

Ï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