Передать картинку из ActiveX в браузер (как?)
От: Shergin Россия http://shergin.com/
Дата: 01.11.07 11:37
Оценка:
Здравствуйте!
Такая проблема:
Есть ActiveX компонент, который внедрен в обычную веб-страницу. Очень хочется передать из этого компонента, некоторое изображение, и (видимо через JavaScript) отобразить его рядом с этим компонентом (например как <img/>).
Подскажите как это можно сделать?.. В какую сторону копать?
Спасибо!
Валентин Шергин
http://shergin.com/
Re: Передать картинку из ActiveX в браузер (как?)
От: Left2 Украина  
Дата: 01.11.07 13:58
Оценка: 1 (1)
S>Есть ActiveX компонент, который внедрен в обычную веб-страницу. Очень хочется передать из этого компонента, некоторое изображение, и (видимо через JavaScript) отобразить его рядом с этим компонентом (например как <img/>).
S>Подскажите как это можно сделать?.. В какую сторону копать?
Реализовать свой Pluggable протокол (на этом сайте ЕМНИП была статья с примером) и отдавать картинку через него, типа

document.all("imgID").src="mycoolprotocol://Picture123";


Ещё один вариант — попробывать реализовать свой behaviour который будет эту картинку рисовать. Возможно, он будет проще в педаляже но тут надо искать примеры.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re: Передать картинку из ActiveX в браузер (как?)
От: Аноним  
Дата: 16.11.07 12:08
Оценка:
Здравствуйте, Shergin, Вы писали:

S>Здравствуйте!

S>Такая проблема:
S>Есть ActiveX компонент, который внедрен в обычную веб-страницу. Очень хочется передать из этого компонента, некоторое изображение, и (видимо через JavaScript) отобразить его рядом с этим компонентом (например как <img/>).
S>Подскажите как это можно сделать?.. В какую сторону копать?
S>Спасибо!
У твоего ActiveX-а есть IOleClientSite
у него надо попросить IOleContainer м-м GetContainer
далее IHTMLDocument2 и можешь вставлять что хочешь...
Вот код, правда на ВСВ, при нажатии на кнопку в ActiveX-форме, находится некий инпут и выводится его содержимое:
void __fastcall TActiveFormX::Button1Click(TObject *Sender)
{
    CComPtr<IOleClientSite> pClientSite;
    WideString              wsURL;


    m_pActiveFormXImpl->GetClientSite(&pClientSite);

    if(pClientSite==NULL ){
        ShowMessage("pClientSite NULL");
        return;
    }

    CComPtr<IOleContainer> spContainer;
    pClientSite->GetContainer(&spContainer);

    CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spDoc(spContainer);

    if( spDoc )
    {
        CComPtr<IHTMLElementCollection> pCollection;
        spDoc->get_all(&pCollection);

        if( pCollection )
        {
            CComPtr<IDispatch> pDisp;
            pCollection->item(TVariant(WideString("GoURL")), TVariant(0), &pDisp);

            if( pDisp )
            {
                CComQIPtr<IHTMLInputElement> pElement(pDisp);
                if( pElement )
                {
                    pElement->get_value(&wsURL);
                    ShowMessage(wsURL);
                }
            }
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.