| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Информация из ярлыка (*.lnk) |
| Автор: Malloc 15.11.2006, 18:29 | ||
| Хочу переделать http://forum.vingrad.ru/topic-66154/unread-1/hl/access%2Cand%2Cthe%2Cand%2Ctwo%2Cand%2Cinterfaces%2Cand%2Cthe%2Cand%2Cobject/index.html для вытаскивания информации о ярлыке, но не знаю, какие заголовочные файлы включить. В Delphi включаются следующие модули:
Какие мне нужно взять заголовочные файлы? Функцию я написал в отдельном от окна модуле. При компиляции пишет, что не знает таких типов и констант, как IShellLink, IPersistFile, CreateComObject, CLSID_ShellLink, SLGP_UNCPRIORITY. Думаю, что надо включить ComObj.hpp, ActiveX.hpp, CommCtrl.hpp, но все равно есть ошибки. |
| Автор: Partizan 15.11.2006, 18:59 |
| а shlobj.hpp не подключал? |
| Автор: Malloc 15.11.2006, 19:15 |
| Подключил, все равно не находит такие типы. Поискал, где IShellLink определен, нашел shobjidl.h. Но при подключении он, по-видимому, конфликтует с vcl.h. Пишет: [C++ Error] shobjidl.h(2193): E2238 Multiple declaration for 'FOLDERSETTINGS' [C++ Error] shobjidl.h(8095): E2238 Multiple declaration for 'DESKBANDINFO' При отдельной компиляции модуля возникает всего одна ошибка: [C++ Error] myclasses.cpp(13): E2451 Undefined symbol 'CLSID_ShellLink'. В данном модуле я не использую vcl.h, но когда я его прикрепляю к форме, появляются ошибки выше. Может, нужно вместо shobjidl.h нужно взять какой-то другой файл? |
| Автор: SenkraD 15.11.2006, 23:47 |
| либо пишы эту функцию в другом файле, либо в самом верху напиши такое #define NO_WIN32_LEAN_AND_MEAN |
| Автор: Partizan 16.11.2006, 04:22 | ||
про избавление от multiple declaration была тема...я помню точно... фпоиск... |
| Автор: dumb 16.11.2006, 06:38 |
| Partizan, над твоим постом рецепт. |
| Автор: Malloc 16.11.2006, 08:03 |
| Спасибо, помогло. |
| Автор: Malloc 16.11.2006, 22:45 | ||||
Теперь выдает исключение. Фрагмент кода
я переделал так:
Появляется исключительная ситуация в последней строчке (Load...). Может быть, я типы как-то неправильно перевел (из IUnknown в IPersistFile)? |
| Автор: SenkraD 16.11.2006, 23:53 | ||
| Ну вот тебе пример простенькой програмки: вот функция для получения инфы о ярлыке
|