| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Найти пункт контекстного меню |
| Автор: GRONN 15.10.2010, 11:08 |
| Господа, всем доброго времени суток. Кажется, я более-менее правильно выбрал раздел для темы, думаю это больше COM, чем Win32)) В своем контекст-меню-хэндлере задача стоит добавить мой пункт меню сразу после "Open With.." либо в начало, если таковой не найдется (на счет того, что на момент вызова моего хэндлера "OW.." может не существовать, а потом появиться, не беспокоимся -- ну не было на момент вызова и не было, неважно). Т.е. надо искать в меню этот самый пункт "OW..". Ясно, что поиск по банальной фразе "Open With" плох, ибо в русской Винде это будет "Открыть с помощью", да еще есть всякие программы, доавляющие свои пункты "Open With что-то-там", да и вообще нечего опираться на внешнее называние пункта. В общем, хочется чего-то идеологически правильного. Мысль возникла -- искать пункт по verb'у -- ведь он не зависит ни от времни года и положения звезд, ни от языка интерфейса и всегда был и будет "openwith". Но как это можно реализовать? Как мне из своей функции IContextMenu::QueryContextMenu(), имея только дескриптор контекстного меню, пробежаться по пунктам и узнать их verb'ы? А, может, есть еще способ? Спасибо за любые обсуждения! |