zoukankan      html  css  js  c++  java
  • 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
    ");
    }
    SAFE_RELEASE(pMeta);
    SAFE_RELEASE(pDisp2);
    SAFE_RELEASE(pHtmlDoc2);
    SAFE_RELEASE(pDisp);
  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/barrysgy/p/4272179.html
Copyright © 2011-2022 走看看