|
|
|
новичок
      
участник
Last Login: 18.10.2001 9:58
Сообщ.: 5,
Visits: 56
|
|
| Как сделать панель для IE вроде Яndex.Бара? Там нужно писать DLL, регистрировать ее, но что должно быть в DLL?
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
Все описано у произвоидетеля...
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/overview/overview.asp
Будут вопросы, пиши, задачка интересная :)
|
|
|
|
|
новичок
      
участник
Last Login: 18.10.2001 9:58
Сообщ.: 5,
Visits: 56
|
|
| А тебе уже приходилось писать панель для IE?
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
| Нет, не приходилось, но всегда интересовался как оно там функционирит...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.06.2004 11:33
Сообщ.: 130,
Visits: 1 431
|
|
Во-первых, удобнее всего это сделать на VC++. Во-вторых, это должен быть COM-объект, обязательно реализующий такие интерфесы, как IDeskBand, IInputObject, IObjectWithSite. Начать можно с визарда, создающий ATL COM. Для того, чтобы получить указатель на интерфейс эксплорера IWevBrowser2 (для открытия страниц и других операций), последний (IObjectWithSite) должен иметь две функции: STDMETHOD(SetSite)(IUnknown *pUnkSite); STDMETHOD(GetSite)(REFIID riid, void **ppvSite); Они вызываются IE. IUnknown в SetSite на самом деле IInputObjectSite. В SetSite пишем (CComQIPtr<IWebBrowser2> m_spWebBrowser2 - член класса, указатель на IWebBrowser2) if (!m_spWebBrowser2) { ····CComQIPtr<IServiceProvider> spSrvProv = pUnkSite; ····if (spSrvProv) ········spSrvProv->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void**)&m_spWebBrowser2); ····if (m_spWebBrowser2) ····{ ········// здесь можно установить IConnectionPoint->Advise на события, типа OnDocumentComplete ····} }
Это основные моменты, все остальное как обычно для COM объектов.
С уважением, Алексей.
|
|
|
|