int CWlyGView::ShowHtml(CString strHtml)
{
CComPtr<IHTMLDocument2> pDoc;
CComPtr<IHTMLElementCollection> sphtmlAll;
CComPtr<IHTMLScriptElement> spObject;
CComPtr<IDispatch> spDisp;
CComVariant varName;
CComVariant varIndex;
if(FAILED((IHTMLDocument2*)this->GetHtmlDocument(),(&pDoc)) || pDoc==NULL)
return 0;
CComQIPtr<IPersistStreamInit> spPersistStream(pDoc);
if(spPersistStream==NULL)
return 0;
LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR,strHtml.GetLength()+1);
lstrcpy(lpMem,strHtml.GetBuffer());
CComPtr<IStream>spStream;
CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
// 初始化后,装载显示
spPersistStream->InitNew();
spPersistStream->Load(spStream );
return 0;
}
为什么程序执行到红色代码那里就停了。请大家看看代码写的有哪些错误。CWlyGView是我的主视图类。谢谢!

解决方案 »

  1.   

    晕,红色怎么不显示?就是从这里:
    if(FAILED((IHTMLDocument2*)this->GetHtmlDocument(),(&pDoc)) || pDoc==NULL)
            return 0;
      

  2.   

    if(FAILED((IHTMLDocument2*)this->GetHtmlDocument(),(&pDoc)) || pDoc==NULL)
    条件为真了。
      

  3.   


    其实我知道是条件为真了,我甚至用最笨的办法在每句代码后加“AfxMessageBox("程序执行到这里了。");"。
    来查找。
    那么能教教我到底怎么写这段代码吗?我这个函数就是要把传进来的Cstring装进文档显示出来的。
      

  4.   

    好了,问题已经解决。现在已经能显示html文件了。现在着手解决显示html时无法解析嵌入的图像、JS等问题了,结贴。