Здравствуйте, подскажите как использовать события из обьекта IWebBrowser2, ниже приведен код который открывает окно браузера и переходит на нужный url но как подписаться или отловить событие DWebBrowserEvents2:ocumentComplete ? Code: IWebBrowser2* pBrowser2; CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,IID_IWebBrowser2, (void**)&pBrowser2); if (pBrowser2) { VARIANT vEmpty; VariantInit(&vEmpty); BSTR bstrURL = SysAllocString(L"http://mail.ru"); HRESULT hr = pBrowser2->Navigate(bstrURL, &vEmpty, &vEmpty, &vEmpty, &vEmpty); if (SUCCEEDED(hr)) { pBrowser2->put_Visible(VARIANT_TRUE); } else { pBrowser2->Quit(); } SysFreeString(bstrURL); }
Это называется - "а бы что то ответить". нашел пример как можно реализовать через BEGIN_EVENTSINK_MAP но тут проблема как только вставляю кусок кода Code: class Bas{ DECLARE_EVENTSINK_MAP() DECLARE_MESSAGE_MAP() }; class SimpleBrowser : public Bas { public: void _OnDocumentComplete(LPDISPATCH lpDisp,VARIANT *URL); DECLARE_EVENTSINK_MAP() DECLARE_MESSAGE_MAP() }; void SimpleBrowser::_OnDocumentComplete(LPDISPATCH lpDisp,VARIANT *URL) { std::cout << "ok!"; } BEGIN_EVENTSINK_MAP(SimpleBrowser,Bas) ON_EVENT(SimpleBrowser,AFX_IDW_PANE_FIRST,DISPID_DOCUMENTCOMPLETE,_OnDocumentComplete,VTS_DISPATCH VTS_PVARIANT) END_EVENTSINK_MAP(); не получается скомпелить Code: error LNK2001: неразрешенный внешний символ ""protected: static struct AFX_EVENTSINKMAP const Bas::eventsinkMap" (?eventsinkMap@Bas@@1UAFX_EVENTSINKMAP@@B)"
Народ помогите отловить событие с IWebBrowser2, финансово смогу отблагодарить 20$, напишите в личку кто в теме.
Лучше бы не связывался ты с этим... Просто как то давно ковырял это дело - доков мало по этому OLE объекту. Нормальных нет вобще. В конце забил. Но если тебе IWebBrowser не принципиален, то посмотри на http://www.awesomium.com/. Да, придется за собой кучу таскать, но зато это нормальный двиг от хрома с хоть какой, но докой на плюсах.