Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Отобразить html документ созданый в памяти в WebBrowser


Все просто получить у WebBrowser интерфейс на документ IHTMLDocument2 и записать в него.
Перед использованием инициализируй Документ вызывая Navigate на "about:blank".

Примерно так:

#include <mshtml.h>

...

IHTMLDocument2 *document = (IHTMLDocument2 *)m_Browser.GetDocument();

HRESULT hresult = S_OK;
VARIANT *param;
SAFEARRAY *sfArray;


BSTR bstr = SysAllocString(OLESTR("<HTML><BODY>Written by IHTMLDocument2::write().</BODY></HTML>"));

// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);

if (sfArray == NULL
"символ или" document == NULL) {
goto cleanup;
}

hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = document->write(sfArray);

cleanup:
SysFreeString(bstr);
if (sfArray != NULL) {
SafeArrayDestroy(sfArray);
} А назад можно примерчик? (в смысле из IE загруженный HTML в массив).



IHTMLDocument2* document = (IHTMLDocument2*)m_Browser.GetDocument();

IPersistStreamInitPtr PerStream = NULL;

HRESULT hresult = S_OK;

hresult = document->QueryInterface(IID_IPersistStreamInit,(void**)&PerStream);

if(SUCCEEDED(hresult))
{
IStreamPtr pStr = NULL;
CreateStreamOnHGlobal(NULL,TRUE,&pStr);
hresult = PerStream->Save(pStr,TRUE);

ULARGE_INTEGER uMaxSize, nowPosition;
LARGE_INTEGER setPosition = {0};
ULONG RealRead = 0;

hresult = pStr->Seek(setPosition,STREAM_SEEK_END,&uMaxSize);

BYTE *pBuff = new BYTE[uMaxSize.LowPart];

hresult = pStr->Seek(setPosition,STREAM_SEEK_SET,&nowPosition);
hresult = pStr->Read((void**)pBuff,uMaxSize.LowPart,&RealRead);

}

Советую посмотреть в MSDN "Loading HTML content from a Stream"


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS