15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как дать возможность пользователю выбрать директорию.

Компилятор: C++ Builder

#include <shlobj.h>


//-----------------------------------------------------------------
void __fastcall TFormX::BrowseForFolderButtonClick(TObject *Sender)
{
  BROWSEINFO BrowsingInfo;
  char DirPath[MAX_PATH];
  char FolderName[MAX_PATH];
  LPITEMIDLIST ItemID;

  memset(&BrowsingInfo, 0, sizeof(BROWSEINFO));
  memset(DirPath, 0, MAX_PATH);

  BrowsingInfo.hwndOwner      = FormX->Handle;
  BrowsingInfo.pszDisplayName = FolderName;
  BrowsingInfo.lpszTitle      = "Al's browsing example.";

  ItemID = SHBrowseForFolder(&BrowsingInfo);
  SHGetPathFromIDList(ItemID, DirPath);

  MessageBox(FormX->Handle, DirPath, "The Chosen One", MB_OK);

  GlobalFreePtr(ItemID);
}

Последняя функция, это макрос, объявленный в <WindowsX.h>