WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  SHBrowseForFolder

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   SHBrowseForFolder
premier опубликован 21-12-2001 19:08 MSK   Click Here to See the Profile for premier   Click Here to Email premier  
Есть процедура обработки нажатия кнопки для выбора папки:
{
CString SelFolder;
LPITEMIDLIST lpIID;
BROWSEINFO bi;
TCHAR szName[255];

ZeroMemory(&bi,sizeof(BROWSEINFO));
TCHAR Dir[MAX_PATH];

bi.hwndOwner = GetSafeHwnd();
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpszTitle = "Выбор папки";
bi.pszDisplayName = &Dir[0];

lpIID = SHBrowseForFolder(&bi);
if(lpIID)
{
VERIFY ( SHGetPathFromIDList (
lpIID, szName ));
SelFolder = szName;
}
}
Все работает отлично, только как указать начальную папку в обзоре и развернуть ее?
Подскажите, pls...

michl_m опубликован 24-12-2001 16:20 MSK     Click Here to See the Profile for michl_m  Click Here to Email michl_m     
У тебя в структуре BROWSEINFO есть pidlRoot. Его нужно заполнить. Примерно так:
LPITEMIDLIST pidlRoot = NULL;
LPSHELLFOLDER pDesktopFolder = NULL;
SHGetDesktopFolder(&pDesktopFolder);
if ( pDesktopFolder != NULL )
{
char szPath[MAX_PATH];
OLECHAR olePath[MAX_PATH];
ULONG chEaten;
ULONG dwAttributes;
HRESULT hr;

GetCurrentDirectory(MAX_PATH, szPath);
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, olePath, MAX_PATH);


// Convert the path to an ITEMIDLIST.
hr = pDesktopFolder->ParseDisplayName(NULL,
NULL,
olePath,
&chEaten,
&pidlRoot,
&dwAttributes);

pDesktopFolder->Release();

}


Затем

bi.pidlRoot = pidlRoot;

LionbI4 опубликован 30-01-2001 15:29 MSK     Click Here to See the Profile for LionbI4  Click Here to Email LionbI4     
http://www.sources.ru/NonCGI/Forum2/HTML/002445.html

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.