Отобразить html из памяти
От: FireGuard Россия  
Дата: 09.11.05 17:34
Оценка:
Столкнулся с проблемой необходимости отобразить уже загруженный в память html-файл. Из известного мною через IWebBrowser2 возможна загрузка только либо по урлу, либо по пути к файлу на диске. А есть ли какая возможность загрузить из памяти?
Re: Отобразить html из памяти
От: sjukov Украина  
Дата: 09.11.05 22:12
Оценка:
А может быть проще не ломать себе голову и сохранить сперва на диск, а затем загрузить?

"FireGuard" <47947@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1479710@news.rsdn.ru...
> Столкнулся с проблемой необходимости отобразить уже загруженный в память html-файл. Из известного мною через IWebBrowser2 возможна загрузка только либо по урлу, либо по пути к файлу на диске. А есть ли какая возможность загрузить из памяти?
Posted via RSDN NNTP Server 1.9
Re[2]: Отобразить html из памяти
От: FireGuard Россия  
Дата: 10.11.05 02:14
Оценка:
S>А может быть проще не ломать себе голову и сохранить сперва на диск, а затем загрузить?

Именно так сейчас и делается и именно от этого и есть необходимость избавиться.
Re[3]: Отобразить html из памяти
От: Guard_h4s Россия  
Дата: 10.11.05 05:58
Оценка:
Здравствуйте, FireGuard, Вы писали:

FG>Именно так сейчас и делается и именно от этого и есть необходимость избавиться.


Использовать отображаемый в память файл?
Re: Отобразить html из памяти
От: gandalf_g Россия  
Дата: 10.11.05 07:33
Оценка:
Здравствуйте, FireGuard, Вы писали:

FG>Столкнулся с проблемой необходимости отобразить уже загруженный в память html-файл. Из известного мною через IWebBrowser2 возможна загрузка только либо по урлу, либо по пути к файлу на диске. А есть ли какая возможность загрузить из памяти?


DHTML, в IWebBrowser2 можно загрузить первоначальную страничку из ресурса того же исполняемого файла (res://...), в который потом добавляется текст html из памяти... жаль примера под рукой нет
Have fun...
Re: Отобразить html из памяти
От: AndrewJD США  
Дата: 10.11.05 08:33
Оценка: 7 (1)
Здравствуйте, FireGuard, Вы писали:

FG>Столкнулся с проблемой необходимости отобразить уже загруженный в память html-файл. Из известного мною через IWebBrowser2 возможна загрузка только либо по урлу, либо по пути к файлу на диске. А есть ли какая возможность загрузить из памяти?


Используй IPersistStreamInit интерфейс. Поищи по форуму ActiveX где-то были готовые примеры.


HRESULT LoadWebBrowserFromStream(IWebBrowser* pWebBrowser, IStream* pStream)
{
HRESULT hr;
IDispatch* pHtmlDoc = NULL;
IPersistStreamInit* pPersistStreamInit = NULL;

    // Retrieve the document object.
    hr = pWebBrowser->get_Document( &pHtmlDoc );
    if ( SUCCEEDED(hr) )
    {
        // Query for IPersistStreamInit.
        hr = pHtmlDoc->QueryInterface( IID_IPersistStreamInit,  (void**)&pPersistStreamInit );
        if ( SUCCEEDED(hr) )
        {
            // Initialize the document.
            hr = pPersistStreamInit->InitNew();
            if ( SUCCEEDED(hr) )
            {
                // Load the contents of the stream.
                hr = pPersistStreamInit->Load( pStream );
            }
            pPersistStreamInit->Release();
        }
    }
}


P.S. Запихнуть HTML в IStream можно с помощью CreateStreamOnHGlobal
"For every complex problem, there is a solution that is simple, neat,
and wrong."
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.