Re: Microsoft Web Browser - вывод ХТМЛ из памяти ????
От: eugene32  
Дата: 08.09.03 15:15
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Собственно вопрос: как вывести ХТМЛ, который лежит не в файле, а в памяти. В файл сохранять нельзя, а из памяти Navigate не работает. Что делать?


... Я тут читал все нитки по теме и, понял, что полемика по оной ушла далеко от ответа. Суть проблемы не столь уж сложна. У меня тоже была такая проблема и, я накрапал кое какой тестовый код.

/VC-6, ProjectType — Simple Dialog/

m_WB is CWebBrowser2 control




void Dia::SomeMethod()
{
// TODO: Add your control notification handler code here
   
   CComPtr<IDispatch> di= m_WB.GetDocument();
   CComPtr<IHTMLDocument2> doc2;
   if(di) di->QueryInterface( __uuidof(IHTMLDocument2),(void**)&doc2 );
   if(doc2)
   {
      CComPtr<IPersistStreamInit> str_init;
      doc2->QueryInterface(__uuidof(IPersistStreamInit),(void**)&str_init);
      if(str_init)
      {
         str_init->InitNew();
         const char* s = "<html><body>ONE: <INPUT ></body></html>";
         char* x = (char*)::GlobalAlloc(GPTR,strlen(s)+1);
         if(x)
         {
            *x=(char)0;
            strcat(x,s);

            CComPtr<IStream> stm;
            ::CreateStreamOnHGlobal((HGLOBAL)x,TRUE,&stm);
            if(!stm)
               ::GlobalFree((HGLOBAL)x);
            else
               str_init->Load(stm);
         }
      }
      
   }
}


Ну естественнов OnInitDialog() нужно вставить строки

CComVariant V("about:blank");
m_WB.Navigate2( &V, NULL, NULL, NULL, NULL );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.