IE и Картинки
От: ArGar  
Дата: 18.12.04 00:21
Оценка:
Все перерыл товарищи но ниче не нашел.
Необходимо включать/выключать программно отображение картинок и прочую лабудень из мультимедии.

Имею IWebBrowser2 как менять с помощью него эти свойства.

Делал через реестр. Но необходимо перегружать полностью експлорера чтобы изменения в реестре вступили в силу.

Кроме как создание клона и разрушение оригинала не получается. Неужели так все и делается.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re: IE и Картинки
От: AndrewJD США  
Дата: 18.12.04 00:33
Оценка:
Здравствуйте, ArGar, Вы писали:

AG>Необходимо включать/выключать программно отображение картинок и прочую лабудень из мультимедии.


AG>Имею IWebBrowser2 как менять с помощью него эти свойства.


AG>Делал через реестр. Но необходимо перегружать полностью експлорера чтобы изменения в реестре вступили в силу.


AG>Кроме как создание клона и разрушение оригинала не получается. Неужели так все и делается.



Можно также пройтись по объектной структуре HTML документа и поменять занчения свойств размеров, установить стили видимости и т.д.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[2]: IE и Картинки
От: ArGar  
Дата: 18.12.04 11:50
Оценка:
Здравствуйте, AndrewJD, Вы писали:

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


AG>>Необходимо включать/выключать программно отображение картинок и прочую лабудень из мультимедии.


AG>>Имею IWebBrowser2 как менять с помощью него эти свойства.


AG>>Делал через реестр. Но необходимо перегружать полностью експлорера чтобы изменения в реестре вступили в силу.


AG>>Кроме как создание клона и разрушение оригинала не получается. Неужели так все и делается.



AJD>Можно также пройтись по объектной структуре HTML документа и поменять занчения свойств размеров, установить стили видимости и т.д.


Хм а боллее конкретно куда смотреть мож пример есть? (без MFC)
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re[3]: IE и Картинки
От: retn нет
Дата: 19.12.04 12:44
Оценка:
Здравствуйте, ArGar, Вы писали:

AG>Хм а боллее конкретно куда смотреть мож пример есть? (без MFC)

Как пример. Доступ к images можно получить и другими способами.
            LPDISPATCH                                lpDisp=NULL;
            CComQIPtr<IHTMLDocument2> pDoc2;

            m_pMainWB->get_Document(&lpDisp);
            if(lpDisp)
            {
                hRes=lpDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc2);
                if(SUCCEEDED(hRes))
                {
                    lpDisp->Release();
                    IHTMLElementCollection* pElemCol;
                    hRes=pDoc2->get_images(&pElemCol);
                    if(SUCCEEDED(hRes))
                    {
                        long              cnt=0;
                        IHTMLImgElement*  pImg=NULL;
                        _variant_t        iInd=0L;
                        hRes=pElemCol->get_length(&cnt);
                        for(long i=0;i<cnt;i++){
                            iInd=i;
                            hRes=pElemCol->item(iInd,iInd,&lpDisp);
                            if(SUCCEEDED(hRes))
                            {
                                hRes=lpDisp->QueryInterface(IID_IHTMLImgElement,(void**)&pImg);
                                if(SUCCEEDED(hRes))
                                {
                                    lpDisp->Release();
                                    hRes=pImg->put_src(_bstr_t("")); // это только пример !!!
                                }
                            }
                        }
                    }
                }
            }


Но тут надо понимать, что картинки загружаться из сети будут.
"Чистая работа",имхо, слушать протокол и заменять image на другие тэги.
nothing is hearing
Re[4]: IE и Картинки
От: ArGar  
Дата: 19.12.04 18:43
Оценка:
Здравствуйте, retn, Вы писали:


R>Как пример. Доступ к images можно получить и другими способами.

R>[ccode]
R> LPDISPATCH lpDisp=NULL;
R> CComQIPtr<IHTMLDocument2> pDoc2;
R>...........

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

R>"Чистая работа",имхо, слушать протокол и заменять image на другие тэги.
хм а если от обратного допустим запрещена загрузка картинок, чтото у IHTMLImgElement я не нашел каким образом отображать выбранные рисунки. Доступна же эта команда из контекстного меню -"Показать рисунок".
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re[5]: IE и Картинки
От: ArGar  
Дата: 19.12.04 19:40
Оценка: 6 (1)
Здравствуйте, ArGar, Вы писали:

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



R>>Как пример. Доступ к images можно получить и другими способами.

R>>[ccode]
R>> LPDISPATCH lpDisp=NULL;
R>> CComQIPtr<IHTMLDocument2> pDoc2;
R>>...........

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

R>>"Чистая работа",имхо, слушать протокол и заменять image на другие тэги.
AG>хм а если от обратного допустим запрещена загрузка картинок, чтото у IHTMLImgElement я не нашел каким образом отображать выбранные рисунки. Доступна же эта команда из контекстного меню -"Показать рисунок".
После смены записи в реестре необходимо послать уведомление
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,(LPARAM)(LPCTSTR)"HKEY_CURENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Display Inline Images" );
Счастье было так близко
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re: IE и Картинки
От: Alexey Goncharov Россия  
Дата: 20.12.04 08:16
Оценка:
Здравствуйте, ArGar, Вы писали:

AG>Необходимо включать/выключать программно отображение картинок и прочую лабудень из мультимедии.

AG>Имею IWebBrowser2 как менять с помощью него эти свойства.

Все зависит от того, кто реализует окошко хоста для вашего WebBrowser'а
Если вы сами, то просто реализуйте в IDispatch хоста обработку свойства DISPID_AMBIENT_DLCONTROL (пример есть здесь
Автор: Alexey Goncharov
Дата: 29.11.03
и ниже по ветке)
Если кто-то другой (например в случае Internet Explorer) — то увы, такой способ не пройдет и похоже придется использовать ваш вариант с реестром
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.