멀더입니다...
제가 해도 에러가 발생하는군요... 죄송합니다... (전에 사용했던 소스인것 같은데 ???)
Google형님의 도움으로 해결하였습니다...
아래의 함수를 이용하시면 될겁니다.
void __fastcall SetHtmlToBrowser(TCppWebBrowser* Browser, AnsiString sHTML)
{
IPersistStreamInit* psi;
IStream* pStream;
HGLOBAL hHTMLText;
int BufSize = sHTML.Length()+1;
hHTMLText = GlobalAlloc (GPTR, BufSize);
if ( hHTMLText ) {
CopyMemory (Pointer(hHTMLText), sHTML.c_str(), sHTML.Length());
if (SUCCEEDED(CreateStreamOnHGlobal (hHTMLText, true, &pStream))) {
if (SUCCEEDED(Browser->Document->QueryInterface(IID_IPersistStreamInit,
(void**)&psi))){
if (SUCCEEDED(psi->InitNew())) {
psi->Load(pStream);
}
psi->Release ();
}
pStream->Release();
}
//GlobalFree( hHTMLText );
}
}
박원병 님이 쓰신 글 :
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: CppWebBrowser1->Navigate(WideString("
http://www.daum.net"), 0, 0, 0, 0);
: }
: //---------------------------------------------------------------------------
:
:
:
: void __fastcall TForm1::SetHTMLSource(AnsiString sHTML, TCppWebBrowser *wb)
: {
: TMemoryStream* stm = new TMemoryStream;
: IPersistStreamInit* psi;
: TStreamAdapter* sa;
:
: stm->SetSize(sHTML.Length());
: stm->Seek(0,0);
: stm->Write(sHTML.c_str(), sHTML.Length());
: stm->Seek(0,0);
:
: sa = new TStreamAdapter (stm, soReference);
:
: if (SUCCEEDED(wb->Document->QueryInterface(IID_IPersistStreamInit, (void**)&psi)))
: {
: psi->Load((IStream*) sa);
: psi->Release ();
: }
: }
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: SetHTMLSource( "
asdfadf"",
: CppWebBrowser1 );
: }
: //---------------------------------------------------------------------------
:
:
:
: 멀더님.. 죄송하지만.. 한번더 부탁 드립니다.
: 위와 같이 간단히 테스트 해보려고 했는데
: QueryInterface에서 memory access 관련 에러가 뜨네요.
: 도저히 감이 안잡힙니다. ㅠ.ㅠ) 바쁘신데 부탁 드립니다. (--)(__)