C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
непонятки с статьей о плагине для IE, нету GetInterfacePtr()
Guest
Отправлено: 19.12.2005, 16:19


Не зарегистрирован







Нет ли у кого исходника плагина описанного в статье “Написание Plugin'ов для Internet Explorer”
My Webpage
, а то я в СОМ программировании не очень отрезаю и некоторые моменты мне из статьи мне непонятны
к примеру когда я объявил переменную IWebBrowser2Ptr m_pWebBrowser2;
то у нее не оказалось функции
m_pWebBrowser2.GetInterfacePtr(), а в примере она используется



GIZMO
Отправлено: 26.12.2005, 18:29


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Guest @ 19/12/2005, 16:19)
Нет ли у кого исходника  плагина описанного в статье “Написание Plugin'ов для Internet Explorer”
My Webpage
, а то я в СОМ программировании не очень отрезаю и некоторые моменты мне из статьи мне непонятны
к примеру когда я объявил переменную  IWebBrowser2Ptr m_pWebBrowser2;
то у нее не оказалось функции
m_pWebBrowser2.GetInterfacePtr(), а в примере она используется

А копировать втупую не надо. IWebBrowser2Ptr и т.п. — смартпоинтеры и то, что наделал тебе tlibimp может отличатся от VC. Обявляй так:
CODE

...
protected:
IWebBrowser2 *m_pWebBrowser2;
...


используй так:


CODE

STDMETHODIMP TMyIEExtentionImpl::SetSite(IUnknown *pUnkSite)
{
if (!pUnkSite)
{
if(m_pWebBrowser2) { //åñëè (*) â MyIEExtentionImpl.h, òî
m_pWebBrowser2->Release();//ýòîãî
m_pWebBrowser2 = NULL; //íå
} //íóæíî

return S_OK;
}

CComQIPtr<IServiceProvider, &IID_IServiceProvider> pServProv(pUnkSite);
//IServiceProvider *pServProv;
//pUnkSite->QueryInterface(IID_IServiceProvider,(void**)&pServProv);
return pServProv->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2,
(void**)&m_pWebBrowser2);
}
//---------------------------------------------------------------------------



Отредактировано GIZMO — 26/12/2005, 18:30

Вернуться в Технологии COM/DCOM, ActiveX