Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Путь к папке My Computer


Автор: Poseidon 19.5.2005, 03:41
Код
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; 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)