具体内容参见http://club.yesky.com/viewthread.php?tid=2614000
  可是我在VC里打开新窗口用了GetDocument以后,程序内存就会增加100多k,而且在关掉以后也不会少下去,如果注释掉这句话的话就不会有这个问题,请高手指教以下,谢谢!下面就是出问题的部分代码。
 ① CWebBrowser2 m_web; ② CComPtr<IDispatch> pDisp1 = m_web.GetDocument();
  
 ③LPDISPATCH CWebBrowser2::GetDocument()
{
LPDISPATCH result;
InvokeHelper(0xcb, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}

解决方案 »

  1.   

    是用IWebBrowser2的智能指针建的对象吗?IWebBrowser2Ptr
      

  2.   

    好像没有,空间用的是Microsoft web browser
      void CWebDialog::OnProgressChangeExplorer(long Progress, long ProgressMax) 
    {
            if(Progress != -1) {
                    return;
            }
            CComPtr<IDispatch> pDisp1 = m_web.GetDocument();
            if(pDisp1 == NULL){
                    return;
            }        CComQIPtr<IHTMLDocument2> pDoc = pDisp1;
            if (pDoc == NULL) {
                    return;
            }        if(m_pDoc!=NULL){
                    AfxConnectionUnadvise(m_pDoc,DIID_HTMLDocumentEvents,GetIDispatch(FALSE),FALSE,m_dwCookie);
            }
            m_pDoc = pDoc;
            AfxConnectionAdvise(pDoc,DIID_HTMLDocumentEvents,GetIDispatch(FALSE),FALSE,&m_dwCookie);
            } 
    这里是获取的部分代码
      

  3.   

    http://www.codeguru.com/cpp/i-n/ieprogram/article.php/c4399/