Включение/отключение картинок в IE (C#)
От: lex-studio  
Дата: 05.02.08 07:08
Оценка:
Доброе утро.
Немного о себе ... Неделю назад обзавёлся идеей сделать тулбар для IE, на котором будет находиться одна кнопка. Задача этой кнопки включать и отключать картинки в IE. С реализацией тулбара проблем не было, а вот карнитки никак не хотят включаться и отключаться .

Начнём с тестового приложения, а именно с компонента System.Windows.Forms.WebBrowser. Создал форму, кинул на неё компонент WebBrowser и одноу кнопку. Немного кода:

private void button1_Click(object sender, EventArgs e)
{
IOleObject ole = webBrowser1.ActiveXInstance as IOleObject;
ole.SetClientSite(new DownloadController());
webBrowser1.Navigate(@"http://google.ru");
}

Класс DownloadController реализует интерфейс IOleClientSite и у него есть нужный нам метод:
[DispId(DISPID_AMBIENT_DLCONTROL)]
public virtual int IDispatchInvokeHandler()
{
return BrowserOptions.ShowImages;
}

Всё работает на УРА!

Теперь собственно о проблеме ... Тоже самое теперь я пытась сделать внутри COM сервера в методе SetSite:

using SHDocVw;
...
public virtual void SetSite(Object pUnkSite)
{
_IServiceProvider sp = pUnkSite as _IServiceProvider;
Guid guid = ExplorerGUIDs.IID_IWebBrowserApp;
Guid riid = ExplorerGUIDs.IID_IUnknown;

object w;
sp.QueryService(ref guid, ref riid, out w);

// В этом месте пытаюсь получить IOleObject различными способами, ничего не получается

Explorer = (WebBrowserClass)Marshal.CreateWrapperOfType(w as IWebBrowser, typeof(WebBrowserClass));
}

Внимание вопрос! (с) что-где-когда
Как получить интерфейс IOleObject в выше приведённом примере? Есть ли другие способы программно включить/отключить картинки в IE? Язык C# — Обязательное требование.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.