Здравствуйте, 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 и я никак не могу получить путь
Спасибо