IWebBrowser2 своя загрузка
От: gimmi_zx  
Дата: 04.08.15 15:30
Оценка:
нужно реализовать свою обработку внутренних ссылок(ну или как вариант своё наполнение документа с картинками)
на пример имеем на странице тег <img src="d\1.png">
нужно поймать загрузку картинки и сунуть свою из потока...чёт найти не могу кто это делает и как туда влезть
dcom iwebbrowser web
Re: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 04.08.15 17:54
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

_>найти не могу кто это делает и как туда влезть


Ключевые слова для поиска — Asynchronous Pluggable Protocol. Можно начать и с rsdn
Автор(ы): Вадим Макутин
Дата: 12.06.2004
Разбирается создание и работа собственного интернет-протокола, приводится пример приложения, использующего такой протокол.
.
Re[2]: IWebBrowser2 своя загрузка
От: gimmi_zx  
Дата: 05.08.15 08:16
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, gimmi_zx, Вы писали:


_>>найти не могу кто это делает и как туда влезть


A>Ключевые слова для поиска — Asynchronous Pluggable Protocol. Можно начать и с rsdn
Автор(ы): Вадим Макутин
Дата: 12.06.2004
Разбирается создание и работа собственного интернет-протокола, приводится пример приложения, использующего такой протокол.
.


пасиб, но свой протокол не выход...
Re[3]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 05.08.15 10:08
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

_>пасиб, но свой протокол не выход...


Опиши, пож-та, задачу более конкретно. Кто формирует html код — ты или третья стороны? Необходимо обрабатывать только URL картинок, т.е. тег <img>? Или нужно просто рисовать в WebBrowser свою картинку на основе URL?
Re[4]: IWebBrowser2 своя загрузка
От: gimmi_zx  
Дата: 05.08.15 10:56
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, gimmi_zx, Вы писали:


_>>пасиб, но свой протокол не выход...


A>Опиши, пож-та, задачу более конкретно. Кто формирует html код — ты или третья стороны? Необходимо обрабатывать только URL картинок, т.е. тег <img>? Или нужно просто рисовать в WebBrowser свою картинку на основе URL?


из БД читаю html и картинки, собственно пока задача только картинки для тега <img> подгружать...
вообще на CEF(обёртка блинка) уже сделал данную вещь, решается там тремя строчками кода в нужной функции(там все urlы и внешние и внутренние проходят через неё), но сама по себе библиотека тяжеловата и не хочется таскать за собой
Re[5]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 05.08.15 14:05
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

_>из БД читаю html и картинки, собственно пока задача только картинки для тега <img> подгружать...


Правильно понимаю, что ты загружаешь html в WB из своего потока (stream, не thread)? Если так, то можно заменить загрузку из потока загрузкой по собственному протоколу, и URL могут быть вида mydb://select * from db. А уже в своем обработчике протокола создавать и отдавать поток с html и с картинками.
Re[6]: IWebBrowser2 своя загрузка
От: gimmi_zx  
Дата: 05.08.15 14:15
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Здравствуйте, gimmi_zx, Вы писали:


_>>из БД читаю html и картинки, собственно пока задача только картинки для тега <img> подгружать...


A>Правильно понимаю, что ты загружаешь html в WB из своего потока (stream, не thread)? Если так, то можно заменить загрузку из потока загрузкой по собственному протоколу, и URL могут быть вида mydb://select * from db. А уже в своем обработчике протокола создавать и отдавать поток с html и с картинками.

да stream. я читал про вариант со своим потоком, не подходит он, в частности и потому что его нужно регистрировать....
не ужто нет никакой книжки как WB устроен? или там эта загрузка совсем глубоко закопана и никакого доступа туда?
Re[7]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 05.08.15 14:42
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

_>в частности и потому что его нужно регистрировать....


Протокол может регистрироваться в рамках приложения, ничего в реестре не меняется.

_>не ужто нет никакой книжки как WB устроен? или там эта загрузка совсем глубоко закопана и никакого доступа туда?


Не встречал.
Re[8]: IWebBrowser2 своя загрузка
От: aloch Россия  
Дата: 05.08.15 17:21
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Протокол может регистрироваться в рамках приложения, ничего в реестре не меняется.


Конкретно этим методом — https://msdn.microsoft.com/en-us/library/aa767759(v=vs.85).aspx (IInternetSession::RegisterNameSpace())

Но написание полноценного протокола задача не простая, в том числе потому, что нормальной книжки нет.


Re[9]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 05.08.15 20:23
Оценка:
Здравствуйте, aloch, Вы писали:

A>>Протокол может регистрироваться в рамках приложения, ничего в реестре не меняется.


A>Конкретно этим методом — https://msdn.microsoft.com/en-us/library/aa767759(v=vs.85).aspx (IInternetSession::RegisterNameSpace())


Это я и имел в виду.

A>Но написание полноценного протокола задача не простая, в том числе потому, что нормальной книжки нет.


Ну, если топикстартер скажет, на чем он пишет, то возможно выяснится, что все украдено до нас уже есть готовые библиотеки.
Re[10]: IWebBrowser2 своя загрузка
От: Vi2 Удмуртия http://www.adem.ru
Дата: 06.08.15 06:46
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Ну, если топикстартер скажет, на чем он пишет, то возможно выяснится, что все украдено до нас уже есть готовые библиотеки.


Он говорил: "вообще на CEF(обёртка блинка) уже сделал данную вещь".
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[11]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 06.08.15 07:40
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Aniskin, Вы писали:


A>>Ну, если топикстартер скажет, на чем он пишет, то возможно выяснится, что все украдено до нас уже есть готовые библиотеки.


Vi2>Он говорил: "вообще на CEF(обёртка блинка) уже сделал данную вещь".


Я имею в виду, что возможно есть готовые библиотеки для создания Pluggable Protocol на используемом топикстартером языке. Например, для Delphi точно есть.
Re[12]: IWebBrowser2 своя загрузка
От: gimmi_zx  
Дата: 06.08.15 07:51
Оценка:
A>Я имею в виду, что возможно есть готовые библиотеки для создания Pluggable Protocol на используемом топикстартером языке. Например, для Delphi точно есть.
VS9, c++
Re: IWebBrowser2 своя загрузка
От: aloch Россия  
Дата: 06.08.15 08:15
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

А обязательно IE? Может лучше взять htmlayout/sciter? Там загрузку из потока легче, чем протокол в IE делать.


Re[12]: IWebBrowser2 своя загрузка
От: aloch Россия  
Дата: 06.08.15 08:17
Оценка:
Здравствуйте, Aniskin, Вы писали:


A>Я имею в виду, что возможно есть готовые библиотеки для создания Pluggable Protocol на используемом топикстартером языке. Например, для Delphi точно есть.


А ты уверен, что эта библиотека — нормальная реализация протокола?


Re[13]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 06.08.15 11:19
Оценка:
Здравствуйте, aloch, Вы писали:

A>А ты уверен, что эта библиотека — нормальная реализация протокола?


Если говорить про библиотеку на Delphi, то да, уверен. Сам же ее написал, все таки
Re[13]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 07.08.15 04:53
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

A>>Я имею в виду, что возможно есть готовые библиотеки для создания Pluggable Protocol на используемом топикстартером языке. Например, для Delphi точно есть.

_>VS9, c++

Для C можно попробовать поковырять PassthroughAPP.
Re[14]: IWebBrowser2 своя загрузка
От: aloch Россия  
Дата: 07.08.15 07:41
Оценка:
Здравствуйте, Aniskin, Вы писали:

A>Если говорить про библиотеку на Delphi, то да, уверен. Сам же ее написал, все таки


А PARSE_SECURITY_URL обрабатываете? А загрузку из других threads?


Re[15]: IWebBrowser2 своя загрузка
От: Aniskin  
Дата: 07.08.15 07:55
Оценка:
Здравствуйте, aloch, Вы писали:

A>А PARSE_SECURITY_URL обрабатываете?


Имеется в виду флаг, передаваемый в IInternetProtocolInfo.ParseUrl? Если да, то обработка отдана на откуп конечному разработчику конечного протокола.

A>А загрузку из других threads?


Рабочий проект не показал проблем при загрузке из разных потоков.
Re: IWebBrowser2 своя загрузка
От: MTimur  
Дата: 02.11.15 23:14
Оценка:
Здравствуйте, gimmi_zx, Вы писали:

_>нужно реализовать свою обработку внутренних ссылок(ну или как вариант своё наполнение документа с картинками)

_>на пример имеем на странице тег <img src="d\1.png">
_>нужно поймать загрузку картинки и сунуть свою из потока...чёт найти не могу кто это делает и как туда влезть

3 месяца прошло, но все же...
Я бы попробовал так:
Картинку кодируем в Base64, а затем меняем в html страницы (после загрузки) это
<img src="d\1.png">


на это
<img src="data:image/png;base64,<BASE64-Encoded image>" />

где <BASE64-Encoded image> — та самая картинка в base64

описание data/image;base64
Отредактировано 02.11.2015 23:27 MTimur . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.