Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > IWebBrowser2


Автор: DESert 20.6.2006, 01:25
Есть такой код
Код

 CComPtr<IDispatch> pDisp;
 CComQIPtr<IWebBrowser2> pIE( pDisp);
 
 CComPtr<IDispatch> pDispDoc;
 pIE->get_Document( &pDispDoc);
 
 CComQIPtr<IHTMLDocument2> pHtmlDoc( pDispDoc);
 СComPtr<IHTMLElement> pIElement;
 
 pHtmlDoc->get_body(&pIElement);
 
 pIElement->get_outerText(&bsText); 
 LPTSTR lpstrText = W2T(bsText);
 
//записываю в файл содержание странички
 CFile OutFile("dataie.txt",CFile::modeWrite);
 OutFile.Write(lpstrText,20); 


В итоге программа вылетает. Дебаг показывает, что в переменную lpstrText ничего не записывается smile
Подскажите, в чём тут может быть ошибка? 

Автор: DESert 20.6.2006, 02:38
Всем спасибо, у меня почти всё заработало. Кому интересно вод окончательный код:
Код

CComPtr<IShellWindows> spShWin;
        if (FAILED(spShWin.CoCreateInstance( __uuidof( ShellWindows))))
            throw AfxMessageBox("Couldn't create object SHDocVW::ShellWindows",MB_ICONINFORMATION|MB_OK|MB_SYSTEMMODAL);
                              

        
        LONG nCount;
        spShWin->get_Count( &nCount);
        m_list.AddString("Shell windows list:");
        for (int i=0; i<nCount; i++)
        {
        
            CComPtr<IDispatch> pDisp;
            spShWin->Item( CComVariant(i), &pDisp);
            CComQIPtr<IWebBrowser2> pIE( pDisp);
            if (pIE == NULL)
                throw AfxMessageBox("Unable to query Internet Explorer object",MB_ICONINFORMATION|MB_OK|MB_SYSTEMMODAL);
            
            
          
            USES_CONVERSION;
            CComBSTR bsUrl;
            BSTR bsText;
            pIE->get_LocationURL( &bsUrl);               
            LPTSTR lpstrUrl = W2T(bsUrl);

           
            CComPtr<IDispatch> pDispDoc;
            pIE->get_Document( &pDispDoc);
            CComQIPtr<IHTMLDocument2> pHtmlDoc( pDispDoc);

            CComPtr<IHTMLElement> pIElement;

            
    if (pHtmlDoc)
            {
                
                m_list.AddString(LPCTSTR(lpstrUrl));
                pHtmlDoc->get_body(&pIElement);
                pIElement->get_outerText(&bsText); 
                
                _bstr_t tmp(bsText, FALSE);
                CString cs(static_cast<const char*>(tmp));  
                
                                    CFile OutFile("dataie.txt",CFile::modeWrite);
                OutFile.Write(LPCTSTR(cs),20);
                
                OutFile.Close();
            } 
            
        }

И всё такие не хочет выводится в файл. Точнее выводится, но не полностью. Всё таки если есть у вас мысли, как организовать вывод в файл, то поделитесь, пожалуйста  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)