Написание Plugin'ов для Internet Explorer - I
От: Борис Гулай aka BoresExpress Россия  
Дата: 22.01.02 19:06
Оценка: 170 (6)
Статья:
Написание Plugin'ов для Internet Explorer — I
Автор(ы): Борис Гулай aka BoresExpress
Дата: 23.01.2002


Авторы:
Борис Гулай aka BoresExpress

Аннотация:
Что же представляет собой плагин для Internet Explorer? Это обычный внутрипроцессный (In Process) COM-сервер (т.е. DLL-файл), который содержит объект, реализующий как минимум 2 интерфейса: IOleCommandTarget и IObjectWithSite.
Re: про пример
От: BoresExpress Россия  
Дата: 22.02.02 05:11
Оценка: 1 (1)
Да, именно из-за фреймов. Плагин ищет ссылке на странице, содержащей FRAMESET, а там их естественно нет.
Кстати, если вы обратите внимание, то все download менеджеры предлагают сначала кликнуть где-нибудь по странице, а затем выбрать "скачать", "сохранить" и т.д. Они так делают именно для того, чтобы определить, в каком именно фрейме произошёл клик.
про пример
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 23.01.02 19:06
Оценка:
примерчик работает ... для простых сайтов, где все на htm ... с rsdn можно получить только индейскую национальную избу, а не список ссылок :( Из-за фреймов? (зависимость от расширения открываемой страницы я отключил)
хочу сказать
От: AI Россия  
Дата: 28.02.02 00:49
Оценка:
всё же хотелось бы чтобы тут же было краткое описание создания com- сервера и внедрение в него компонентов , так как приходиться изучать всё о com прежде чем понят то что нужно
Re: хочу сказать
От: BoresExpress Россия  
Дата: 07.03.02 06:56
Оценка:
Вам всё равно придётся изучать COM, потому как без него написать что либо работающее с IE (будь то плагин или что угодно) невозможно. Я считаю, что в это случае изучать COM лучше по специальным статьям и книгам, чем по "кратким описаниям".
Посмотрите, например, вот эту статью:
http://rsdn.ru/article/?com/introcom.xml
Автор(ы): Том Армстронг

В этой главе, позаимствованной из книги "ActiveX-Создание Web-приложений"
Тома Армстронга, рассматриваются основные понятия модели COM, такие как
интерфейс IUnknown, GUID, фабрики классов и т. д. Кроме того, автор приводит
примеры реализации COM-клиентов и COM-серверов с использованием языка C++,
Visual Basic и библиотеки ATL.

Вообще на RSDN в разделе COM (http://rsdn.ru/summary/?266) много интересных статей для начинающих.

Так что, для того, чтобы понять "что нужно, в любом случае придётся изучать COM.
Свой таб в IE
От: VadimKa2 Украина  
Дата: 12.03.02 23:19
Оценка:
А как создать свой таб в IE, скажем с tree ctrl внутри?
Заранее благодарен за ответ.
Re: Свой таб в IE
От: BoresExpress Россия  
Дата: 03.04.02 03:20
Оценка:
Не очень понял, чего имеется в виду под словом "таб" ...
работает только один раз
От: tanja  
Дата: 18.04.02 03:34
Оценка:
плагин работает, но только один раз :-(
после первого нажатия на кнопку он отрабатывает, и кнопка деактивируется. когда в IMyIEExtention::QueryStatus вместо проверки на .html я поставила просто
prgCmds[0].cmdf=OLECMDF_ENABLED;
на кнопку появилась возможность нажать второй раз, но после нажатия на нее Internet Explorer вылетает :-(

можно ли каким-то образом запускать плагин несколько раз?
Re: работает только один раз
От: BoresExpress Россия  
Дата: 18.04.02 06:28
Оценка:
Чудеса расказываете. У меня плагин работает сколько угодно раз.
Рассажите подробнее: какой браузер, какая сборка, что в .ini файле, сохраняет ли первый раз, что на странице и т.д.
Re: работает только один раз - сори, не всегда
От: tanja  
Дата: 19.04.02 02:01
Оценка:
я проверила еще несколько раз — иногда плагин работает устойчиво. причем бывает так, что на одной странице то работает, то вылетает.

ie 6.0.2600.0000
в ini:
.jpg
.htm
.gif
первый раз сохраняет
в основном я проверяла на www.yahoo.com

в сообщении об ошибке пишет This is usually a result ... function declared with one calling convention with a function pointer declared with a different calling convention

может, проблемы у меня. на моем ie висит еще 3 плагина и недописанный BHO
Delphi ActiveX
От: wp  
Дата: 14.05.02 20:32
Оценка:
Как сделать из ActiveX'а что-то типа Yandex Bar, то есть видеть его а IE как панельку?
Re: работает только один раз - сори, не всегда
От: Zilog™ Россия  
Дата: 12.06.02 19:39
Оценка:
>в сообщении об ошибке пишет This is usually a result ... >function declared with one calling convention with a function >pointer declared with a different calling convention

Сделай в проекте calling convention функций __stdcall ом по умолчанию.
Don't work hard, work smart.
Обработка "другого" формата файла
От: Bagri  
Дата: 23.06.02 20:42
Оценка:
Спасибо прежде всего за статью.
Вопрос — у меня есть файл своего формата, я хочу чтобы этот файл загружался из ИНета и обрабатывался в ИЕ. Насколько я понимаю это должно быть реализовано похоже как например обработка ПДФ-файлов. Как это сделать? Какие интерфейсы должен поддерживать мой COM-сервер?
Спасибо.
Re: Обработка
От: BoresExpress Россия  
Дата: 24.06.02 01:57
Оценка:
Эта фича к эксплореру отношения не имеет. Нужно написать приложение, поддерживающее OLE (в VC++, кстати, есть соответствующий пункт в мастере) и правильно его зарегистрировать. Тогда, например, при попытке вставить файл вашего приложения в Word будет вызыватся это самое приложение, как OLE-сервер. Открытие файлов в IE — это частный случай.
Re: Свой таб в IE
От: BoresExpress Россия  
Дата: 24.06.02 02:00
Оценка:
В июньском номере "Программист"'а выйдет моя статья, посвящённая этому вопросу. И, как только мне будет позволено редакцией журнала, я сразу же размещу её здесь (при согласии редакции сайта, разумеется).
динамическое скрытие кнопки в IE toolbare
От: DoBJeK  
Дата: 02.07.02 10:21
Оценка:
Спасибо, очень полезная статья.
Помогла мне в моей задаче. Правда есть еще несколько вопросиков.
Как можно сделать так, что бы добавленная кнопка в IE toolbar еще имела свойство динамически прятаться и показываться в зависимости от введения определенного URL в адрессной строке браузера. Интерессно какие функции они испльзуют с Customize при добавлении или удалении из списка 'Available toolbar buttons' в список'Current toolbar buttons'? Могу ли я испльзовать эти функции в своих приложениях?
Заранее благодарен.
Re: Delphi ActiveX
От: Николай Козлов Украина http://www.nickolya.wallst.ru
Дата: 16.08.02 08:25
Оценка:
К сожалению Вам так и не дали тут ответа, но может Вы всеже решили этот вопрос? Если да, то не могли бы Вы поделиться этими знаниями?
Re: Delphi ActiveX
От: BoresExpress Россия  
Дата: 16.08.02 12:26
Оценка:
Прошу прощения за то, что не ответил. Я совершенно забыл про этот вопрос.
Вскоре я опупбикую на этом сайте (если администрация не будет против) продолжение статьи про плагины для IE, где этотт вопрос будет подробно освещён.
А как сделать кнопку с выпадающим списком? (-)
От: AIV  
Дата: 21.08.02 13:56
Оценка:
А как сделать кнопку с выпадающим списком? (-)
Re: А как сделать кнопку с выпадающим списком? (-)
От: BoresExpress Россия  
Дата: 21.08.02 20:21
Оценка:
Скажите, а где вы видели кнопку с выпадающим списком на _общем_ тулбаре?
А как на отдельном — в продолжении статьи.
Re: динамическое скрытие кнопки в IE toolbare
От: BoresExpress Россия  
Дата: 21.08.02 20:22
Оценка:
Теперь вы знаете, что есть лучшее решение вашей задачи. :)
Re: Delphi ActiveX
От: Николай Козлов Украина http://www.nickolya.wallst.ru
Дата: 22.08.02 12:45
Оценка:
Спасибо. Будем ждать.
Re: А как сделать кнопку с выпадающим списком? (-)
От: AIV  
Дата: 22.08.02 12:57
Оценка:
У меня после нажатия на кнопку Edit, например, появляется список возможных редакторов (Notepad ,Word). Или это не общий тулбар?
Опять же, а как сделаны кнопка Back и Forward?
И еще. Есть два типа кнопок — одни состоят как бы из 2-х частей (картинка и стрелка), другие — просто картинка.
Если можно напишите и про это тоже.
В любом случае, большое спасибо за Ваши статьи, очень интересно.
Re: А как сделать кнопку с выпадающим списком? (-)
От: BoresExpress Россия  
Дата: 22.08.02 13:02
Оценка:
Это стандартные кнопки. Я имел в виду кнопки плагинов.
Насколько я знаю, добавить такую кнопку на общий тулбар нельзя. Для этого надо делать свой band на rebar'е эксплорера и делать с ним всё, что заблагорассудится. Как это сделать — в продолжении статьи.
Есть ли подобная рекомендация для Outlook Express?
От: dz  
Дата: 23.08.02 18:41
Оценка:
Там через extensions вроде как не работает...
Re: Есть ли подобная рекомендация для Outlook Expr
От: BoresExpress Россия  
Дата: 24.08.02 07:28
Оценка:
Не понал, что конкретно Вас интересует в Outlook Express?
Re: Delphi ActiveX
От: Николай Козлов Украина http://www.nickolya.wallst.ru
Дата: 30.08.02 08:31
Оценка:
Скоро ли ожидать появления Вашей статьи?
Re: Delphi ActiveX
От: BoresExpress Россия  
Дата: 30.08.02 10:34
Оценка:
Я уже отправил её администраторам сайта. Ответа пока нет. Надеюсь, что у них есть серьёзные причины для такой задержки с ответом.
Но всё же надо быть снисходительными, сейчас же лето!
Re: Написание Plugin'ов для Internet Explorer - I
От: Ёрик  
Дата: 10.02.05 15:00
Оценка:
Здравствуйте, Борис Гулай aka BoresExpress, Вы писали:

БГA>Статья:



БГA>Авторы:

БГA> Борис Гулай aka BoresExpress

БГA>Аннотация:

БГA>Что же представляет собой плагин для Internet Explorer? Это обычный внутрипроцессный (In Process) COM-сервер (т.е. DLL-файл), который содержит объект, реализующий как минимум 2 интерфейса: IOleCommandTarget и IObjectWithSite.

Кривой какой-то ком, олевью падает при попытке его создать.
Re: Написание Plugin'ов для Internet Explorer - I
От: Diletant  
Дата: 16.02.05 10:29
Оценка:
Здравствуйте, Борис Гулай aka BoresExpress, Вы писали:

БГA>Статья:



БГA>Авторы:

БГA> Борис Гулай aka BoresExpress

БГA>Аннотация:

БГA>Что же представляет собой плагин для Internet Explorer? Это обычный внутрипроцессный (In Process) COM-сервер (т.е. DLL-файл), который содержит объект, реализующий как минимум 2 интерфейса: IOleCommandTarget и IObjectWithSite.

Существует ли возможность запретить IЕ показывать Download диалог для .COM, .EXE etc. файлов, и если нет, то как можно перехватить скачиваемый файл (или запретить его скачивание)?
Благими пожеланьями дорожку гладко выстелим (С)
Re: Написание Plugin'ов для Internet Explorer - I
От: Аноним  
Дата: 30.08.05 14:09
Оценка:
Здравствуйте, Борис Гулай aka BoresExpress,

Возможно ли отличить при обработке событий в Plugin'е нажатие на кнопку от выбора пункта меню?

С уважением.
Re: Написание Plugin'ов для Internet Explorer - I
От: Кодт Россия  
Дата: 13.09.05 08:34
Оценка:
Здравствуйте, Борис Гулай aka BoresExpress, Вы писали:

<>

Если скомпилировать с юникодом, то постигнет облом: некорректно написан код DllRegisterServer(), а именно.

Функции RegSetValue(.....LPCTSTR lpData,DWORD cbData) и RegSetValueEx(.....LPCBYTE lpData,DWORD cbData) измеряют длину строки в байтах.
А здесь им передаётся длина в элементах строки, т.е. в TCHAR'ах. Соответственно, в реестре наблюдаем строки, обкусанные до половины.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.