Сразу скажу, что работаю в c++ builder (хотя уже и сам жалею об этом) Нужно добавить свой новый пункт(ы) в конт. меню проводника. WinRar, допустим, делает такую тему... Прочитал в инете что для этого нужно использовать COM-объекты. Но я честно говоря ни разу с ними нече не пробывал делать и следовательно здесь тоже не знаю в какую сторону копать. Вообщем, может кто кинет ссылку на статейку (желательно по данной теме, а не обобщенный материал по COM или ACtiveX) или примерчик какой-нить? Нагуглил ссылку: http://www.rsdn.ru/article/winshell/shlext1.xml , но там, во-первых, нужен VCC, во-вторых, насколько я смог понять, материал немного подустарел... P.S. Видел еще в инете, что можно проделать что-то подобное просто добавляя несколько записей в реестре. Но там сильно не раскрутишься т.е. submenu, иконки сделать не получится, плюс "слишком просто" че-то это для меня Что-то уже новое узнать хотелось бы... Вообщем, помогите кто чем может.
Вообще есть очень хороший пример этого для Delphi От дельфы до билдера не далеко, так что быстро сможешь переписать. Описано всё тут: http://delphiworld.narod.ru/base/add_ie_menu_item.html или как вариант - запроса в поисковик: "Пример добавления пункта в контекстное меню Windows Explorer"
Спс за линк. +1... Тут начал уже переводить код. Не так уж и просто оказалось заниматься этим. Три функции пока только портанул... Вообщем такой вопросец. Никто не подскажет как такое можно "перевести" в c++? Code: type TContextMenuFactory = class(TComObjectFactory) public ................. override; end; TContextMenu = class(TComObject, IShellExtInit, IContextMenu) .................. end; Пытался сделать как-то так: Code: class TContextMenuFactory : public TComObjectFactory { public: void recount(); }; Но компилятор ругается: [BCC32 Error] Main.cpp(16): E2029 'TComObjectFactory' must be a previously defined class or struct
точно не помню, но по аналогии форма в билдере делается. вот и смотри как описывается класс формы, так и опиши этот )
Да я в принципе практически сразу, как начал портировать, подключил все модули, которые были в том коде. Code: #include <vcl.h> #include <windows.h> #include <ComServ.hpp> #include <ComObj.hpp> #include <ActiveX.hpp> #include <ShlObj.h> #include <ShlObj.hpp> #include <Menus.hpp> #include <ShellAPI.hpp> #include <SysUtils.hpp> #include <registry.hpp> #pragma hdrstop Это в дельфях, а билдере инклуд ComObj.h как видно не к чему не ведет...
это всеж-таки случилось... =)) Все. Разобрался. Все работает безотказно. P.S. Как будет время напишу ФАК или статейку по этому делу... Т.к. думаю, что не у одного меня была такая проблема... Добавлено через 4 дня : Ну вот... Как обещал: /showthread.php?p=1194736#post1194736