Здравствуйте Vasiliy Vladimirovich Safronov, Вы писали:
VVS>Поскажите пожалуйста как получить доступ из activeX к страничке в которую он включен.
VVS>Например я вызываю функцию моего обьекта в параметрах даю id тага(iframe,div и.т.д)
VVS>А фукция выводит MessageBox показывающий содержимое тага.(innerText).
В общем тебе нужно добраться вот до такого интерфейса IWebBrowser2. Для контрола, получить его можно через IOleClientSite, который передается контролу либо посредством вызова IOleObject::SetClientSite либо IObjectWithSite::SetSite
//@//////////////////////////////////////////////////////////////////////////
// CCtrl IObjectWithSiteImpl
STDMETHODIMP CCtrl::SetSite(IUnknown* pUnkSite)
{
HRESULT hr;
if (FAILED(hr = IObjectWithSiteImpl<CAlterEGoCtrl>::SetSite(pUnkSite)))
return hr;
if (NULL == pUnkSite)
{
ATLASSERT(m_webBrowser);
if (m_webBrowser)
{
DispEventUnadvise(m_webBrowser);
m_webBrowser.Release();
}
return S_OK;
}
IServiceProvider *pSP = NULL;
if (FAILED(hr = pUnkSite->QueryInterface(IID_IServiceProvider, (void**)&pSP)))
return hr;
hr = pSP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void**)&m_webBrowser);
pSP->Release();
if (FAILED(hr))
return hr;
if (SUCCEEDED(hr = DispEventAdvise(m_webBrowser)))
return S_OK;
m_webBrowser.Release();
return hr;
}
После того как у тебя есть IWebBrowser2, через IWebBrowser2::get_Document добирается до HTMLDocument'а, и уже через него получаешь доступ к DHTML.
VVS>За любые советы или ссылки буду очень благодарен.
http://msdn.microsoft.com/workshop/components/activex/buildax.asp
http://msdn.microsoft.com/workshop/components/com/com_node_entry.asp
http://msdn.microsoft.com/workshop/browser/prog_browser_node_entry.asp
PS:
Подключение к событиям объектной модели DHTML при использовании WebBrowser-control
Автор: Тимофей Чадов
Источник: RSDN Magazine #0
http://www.rsdn.ru/mag/?0002/dhtmlspy.xml