//m_Browser 为 WebBrowser 控件的一个对象
m_Browser.Navigate("http://www.sina.com.cn",.....)
...
...
//在OnDownLoadComplete里面
//得到一个Ihtmldocument2 接口指针 m_pHtmlDocument
CComPtr<IHTMLElement> m_HtmlBody;
m_pHtmlDocument->get_body(&m_HtmlBody);(1)为什么我调试的时候m_HtmlBody都是一个NULL呢?
(2)当获得一个body后,要怎么释放?

解决方案 »

  1.   

    1 只有在第一次导航完成之后,DOM才有效,而DownLoadComplete在一次导航中可能触发多次
    2 CComPtr的析构函数自己会释放
      

  2.   

    首先谢谢 jiangsheng老大帮我解决了这么多问题我还想请问一下各位高手,各个消息
    DownloadBegin,DownloadComplete , DocumentComplete是怎么产生的?所以我测试了一下,比如连接www.china.com
    DownloadBegin 触发的次数比较不稳定,基本上是两次,但有时可以是90次,有时是10次
    DownloadComplete出发的次数就是3次,偶尔4次
    而DocumentComplete几乎都是两次!
    我是在短时间内测试的,所以china.com的网页没有什么更改
    这个网页有一个主页和三个弹出的广告窗口DownloadComplete,DownloadBegin,DocumentComplete是什么时候才会产生?
      

  3.   

    这个么,去看看DWebBrowserEvents的说明
      

  4.   

    呵呵,谢谢
    我刚接触这个方面,还不知道这个在MSDN里面也有
    我找到了!
      

  5.   

    其中有:
    Each DWebBrowserEvents2::DownloadBegin event will have a corresponding DWebBrowserEvents2::DownloadComplete event我在DownloadComplete和BeginComplete里面设置两个计数器
    用来计算每个事件触发的次数
    为什么我每次测试所得的DownloadComplete次数和BeginComplete的次数是不一样的呢?
      

  6.   

    再问问
    为什么打开一个存放在我的电脑上的一个.htm文件
    可以出发DownloadComplete 和 DownloadBegin
    就是没有DocumnetComplete的消息呢?
      

  7.   

    都是比较快的
    比如www.china.com 5、6秒钟吧