SHBrowseForFolder
От: Аноним  
Дата: 14.01.02 05:01
Оценка:
Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ

Заранее благодорю
Re: SHBrowseForFolder
От: Alex Fedotov США  
Дата: 14.01.02 05:25
Оценка:
Здравствуйте Аноним, Вы писали:

А>Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ


http://www.rsdn.ru/?qna/?ui/getfldr.xml
-- Alex Fedotov
Re: SHBrowseForFolder
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 14.01.02 06:00
Оценка:
Здравствуйте Аноним, Вы писали:

А>Подскажите как указать каталог с которого начинать просмотр с помощью SUBJ


http://www.rsdn.ru/?qna/?ui/getfldr.xml
Re: SHBrowseForFolder
От: Рек Россия  
Дата: 14.01.02 07:11
Оценка:
Здравствуйте Аноним, Вы писали:

А>Подскажите как указать каталог с которого начинать просмотр с помощью 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);
...
Re[2]: SHBrowseForFolder
От: Andrey_N_M Россия  
Дата: 01.04.02 05:50
Оценка:
Здравствуйте Odi$$ey,

O$>http://www.rsdn.ru/?qna/?ui/getfldr.xml

Описанный выше метод не позволяет использовать в качестве каталога по умолчанию "сетевой" путь подобный этому: \\SomeComputer\SomeFolder
Кто-нибудь решил эту проблему?
ICQ: 100287472
Re[3]: SHBrowseForFolder
От: Alex Fedotov США  
Дата: 01.04.02 06:20
Оценка:
Здравствуйте Andrey_N_M, Вы писали:

ANM>Здравствуйте Odi$$ey,


O$>>http://www.rsdn.ru/?qna/?ui/getfldr.xml

ANM>Описанный выше метод не позволяет использовать в качестве каталога по умолчанию "сетевой" путь подобный этому: \\SomeComputer\SomeFolder


Я бы попробовал все то же сообщение BFFM_SETSELECTION, только с PIDL в качестве параметра, который формировать самому.
-- Alex Fedotov
Re[4]: SHBrowseForFolder
От: Andrey_N_M Россия  
Дата: 05.04.02 03:55
Оценка:
Здравствуйте 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"

Однако выбор корневого каталога с тем же путем работает...
ICQ: 100287472
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.