Re[4]: Как узнать выбранную папку в IContextMenu.QueryContex
От: S_V_B Беларусь  
Дата: 04.06.10 07:51
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

JR>Здравствуйте, S_V_B, Вы писали:


S_V>>Да, я так и делаю (регистрирую компоненту в смысле), и правый клик у меня обрабатывается, событие в QueryContextMenu приходит и здесь я могу добавить нужные мне команды, но мне их нужно добавлять в зависимости от выбранного каталога (в левом дереве в эксплоере). А как его узнать, я пока не понял.

S_V>>В данном сценарии DragQueryFile не возвращает выбранный каталог.

JR>В метод IShellExtInit::Initialize Вам передаются два параметра: LPCITEMIDLIST pidlFolder и IDataObject *pdtobj, причём один из них равен нулю. Если кликнули по файлу или папке, то нулю равен первый, а если по подложке — второй. В этом случае получить путь к папке можно с помощью SHGetPathFromIDList.


Столкнулся с еще одной проблемой:
Если я кликаю по файлу или папке, то путь я пытаюсь получить следующим образом:

            uint nselected = Helpers.DragQueryFile(m_hDrop, 0xffffffff, null, 0);
            if (nselected > 0)
            {
                Helpers.DragQueryFile(m_hDrop, 0, sb, sb.Capacity + 1);
                curPath = sb.ToString();
            }


На vista работает, а на windows 7 x64 почему-то nselected = 0 и я никак не могу получить путь

Спасибо
dragqueryfile windows 7
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.