MFC webbrowser读取文档的meta分析

IDispatch* pDisp = NULL;

IDispatch* pDisp2 = NULL;

IHTMLDocument2 *pHtmlDoc2 = NULL;

IHTMLElementCollection* pCol;

IHTMLMetaElement *pMeta = NULL;

BSTR bUrl = NULL;

BSTR bstr = NULL; 

try {

    if ((pDisp = m_WebBrowser.get_Document()) &&

        SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2,(PVOID*)&pHtmlDoc2)) 

        && SUCCEEDED(pHtmlDoc2->get_all( &pCol)) && pCol

        )

    {

        //检查域名是www.test.com或www.test2.com的域名下, meta标签是否有myflag标记, 如果有则认为是正确的网页bIsGoodWebPage为TRUE

        pHtmlDoc2->get_URL(&bUrl);

        if(wcsstr((const wchar_t*)bUrl, L"www.test.com") == NULL 

            && wcsstr((const wchar_t*)bUrl, L"www.test2.com") == NULL)

        {

            bIsGoodWebPage = TRUE;

        }

        else

        {

            long eleLen = 0;

            pCol->get_length(&eleLen);

            IHTMLMetaElement* pMetaElement = NULL;

            VARIANT varIndex;

            HRESULT hr;

            for( int i=0; i< eleLen; i++)

            {

                VARIANT var2;

                varIndex.vt = VT_UINT;

                varIndex.lVal = i;

                VariantInit( &var2 );

                hr = pCol->item(varIndex, var2, &pDisp2);

                hr  = pDisp2->QueryInterface(IID_IHTMLMetaElement,(void**)&pMeta);

                if( hr == S_OK)

                {

                    if( SUCCEEDED(pMeta->get_httpEquiv(&bstr)) )

                    {

                        if(!wcscmp((const wchar_t*)bstr,L"keywords"))

                        {

                            bstr = NULL;

                            if(SUCCEEDED(pMeta->get_content(&bstr)))

                            {

                                if(!wcscmp((const wchar_t*)bstr, L"myflag"))

                                {

                                    bIsGoodWebPage = TRUE;

                                    break;

                                }

                            }

                        }    

                    }

                }

            }

        }

    }

}

catch (...)

{

    WBTRACE("Error\r\n");

}

SAFE_RELEASE(pMeta);

SAFE_RELEASE(pDisp2);

SAFE_RELEASE(pHtmlDoc2);

SAFE_RELEASE(pDisp);

 

你可能感兴趣的:(WebBrowser)