Здравствуйте Аноним, Вы писали:
А>Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ
http://www.rsdn.ru/?qna/?ui/getfldr.xml
Здравствуйте Аноним, Вы писали:
А>Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ
http://www.rsdn.ru/?qna/?ui/getfldr.xml
Здравствуйте Аноним, Вы писали:
А>Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ
А>Заранее благодорю
Я делаю это примерно так ...
static int WINAPI BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM, LPARAM lpData)
{
if (uMsg == BFFM_INITIALIZED)
::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
return 0;
}
...
BROWSEINFO browseInfo= {0};
browseInfo.hwndOwner= m_hWnd;
browseInfo.ulFlags = BIF_RETURNONLYFSDIRS;
browseInfo.lpfn = BrowseCallbackProc;
browseInfo.lParam = (LPARAM)szInitialDir;
...
SHBrowseForFolder(&browseInfo);
...
Здравствуйте Odi$$ey,
O$>
http://www.rsdn.ru/?qna/?ui/getfldr.xml
Описанный выше метод не позволяет использовать в качестве каталога по умолчанию "сетевой" путь подобный этому: \\SomeComputer\SomeFolder
Кто-нибудь решил эту проблему?
Здравствуйте Andrey_N_M, Вы писали:
ANM>Здравствуйте Odi$$ey,
O$>>
http://www.rsdn.ru/?qna/?ui/getfldr.xml
ANM>Описанный выше метод не позволяет использовать в качестве каталога по умолчанию "сетевой" путь подобный этому: \\SomeComputer\SomeFolder
Я бы попробовал все то же сообщение BFFM_SETSELECTION, только с PIDL в качестве параметра, который формировать самому.
Здравствуйте Alex Fedotov, Вы писали:
AF>Я бы попробовал все то же сообщение BFFM_SETSELECTION, только с PIDL в качестве параметра, который формировать самому.
А не могли бы Вы привести примерчик формирования PIDL?
Я попробовал сделать это по аналогии с тем, как задается корневой каталог, но у меня ни чего не получилось
static int CALLBACK BrowseCallbackProc (HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
.
.
.
case BFFM_INITIALIZED:
if (lpData) {
IShellFolder *pDF;
if (SHGetDesktopFolder(&pDF) == NOERROR) {
LPITEMIDLIST pIdl = NULL;
ULONG chEaten;
ULONG dwAttributes;
HRESULT hr;
LRESULT lr;
USES_CONVERSION;
LPOLESTR oleStr = T2OLE((LPCTSTR)lpData);
hr = pDF->ParseDisplayName(NULL,NULL,oleStr,&chEaten,&pIdl,&dwAttributes);
hr = pDF->Release();
lr = SendMessage(hWnd,BFFM_SETSELECTION,FALSE,(LPARAM)pIdl);
}
}
break;
.
.
.
В результате просто раскрывается список компьютеров (в "Network Neighborhood"), выделенным остается элемент "My Computer"
Однако выбор корневого каталога с тем же путем работает...