Re: activeX
От: Sashko Россия http://www.dc.baika.ru/
Дата: 26.02.02 02:22
Оценка:
Здравствуйте 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.