用CHtmlView接口获取HTML源文件

支持在UNICODE工程下获取HTML代码,无乱码。。。。发了两年多了才知道,害得我找了一晚上,没想到自己的博客里就有。。。

BOOL CWeb::GetSource(CString& strString) 
{ 
    IHTMLDocument2* pHtmlDoc2 = (IHTMLDocument2*)GetHtmlDocument(); 
    // check if HtmlDocument initialized 
    if( pHtmlDoc2 != NULL) 
    { 
        IHTMLDocument3* pHTMLDoc3 = NULL; 
        HRESULT hr = pHtmlDoc2->QueryInterface(IID_IHTMLDocument3, (LPVOID*)&pHTMLDoc3); 
        ASSERT(SUCCEEDED(hr)); 
        if(pHTMLDoc3) 
        { 
            IHTMLElement* pDocElem=NULL; 
            hr = pHTMLDoc3->get_documentElement(&pDocElem); 
            ASSERT(SUCCEEDED(hr)); 
            if(pDocElem) 
            { 
                BSTR bstrHTML; 
                pDocElem->get_outerHTML(&bstrHTML); 
                pDocElem->Release(); 
                USES_CONVERSION; 
                //MessageBox(OLE2T(bstrHTML), _T("源文件")); 
                strString = OLE2T(bstrHTML); 
                SysFreeString(bstrHTML); 
            } 
            pHTMLDoc3->Release(); 
        } 
        pHtmlDoc2->Release(); 
        pHtmlDoc2=NULL; 
    }
    return TRUE; 
}
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注