Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Путь к папке My Computer

01.01.2007
uses
  ActiveX, ShlObj;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  pShell, ShellFolder: IShellFolder;
  pidl: PITEMIDLIST;
  PMalloc: IMalloc;
  sName: string;
  EnumIDList: IEnumIDList;
  pceltFetched: ULONG;
  lpName: TStrRet;
  slDirectories: TStringList;
begin
  slDirectories := TStringList.Create;
  try
    SHGetDesktopFolder(ShellFolder);
    SHGetSpecialFolderLocation(0,CSIDL_DRIVES, pidl);
    SHGetMalloc(PMalloc);
    ShellFolder.BindToObject(pidl, nil, IID_IShellFolder, Pointer(pShell));
    pShell.EnumObjects(0,SHCONTF_FOLDERS, EnumIDList);
    while EnumIDList.Next(1,pidl, pceltFetched) = S_ok do
    begin
      pceltFetched := 0;
      lpName.uType := 0;
      pShell.GetDisplayNameOf(pidl, SHGDN_FORPARSING, lpName);
      sName := lpName.pOleStr;
      slDirectories.Add(sName);
    end;
    ListBox1.Items.Assign(sldirectories);
  finally
    pMalloc._Release;
    pMalloc := nil;
    slDirectories.Free;
  end;

Взято с сайта https://www.swissdelphicenter.ch/en/tipsindex.php