用VS2005做一个pocket pc上的ie,如何读出HTML文件啊,谁有没有现成的例子啊,急需,在线等

解决方案 »

  1.   

    HTML文件就当成普通文件读进内存,再进行解析吧
    然后根据解析的结果进行显示
      

  2.   

    不会吧,这么复杂啊,我看了一下,MFC里面有个类叫做Chtmlview的吧,好像有些函数,什么navigate2什么的,好像把路径名给出就可以读出来的,不知道有没有这样的SDK能不能实现啊
      

  3.   

    首先找到IHTMLDocument2 接口,然后依次枚举文档的左右节点,利用接点的get_innerHTML获得代码.这里是我以前写的一个程序里面的判断,只是取出了body的html代码//根据webbrowser的窗口句柄获得IHTMLDocument2接口
    BOOL GetIHtmlDocPtr(HWND hwndWeb,IHTMLDocument2**ppHtmlDoc)
    {
    UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
    LRESULT lRes;
    ::SendMessageTimeout( hwndWeb, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*) &lRes );
    HRESULT hr = ObjectFromLresult ( lRes, IID_IHTMLDocument2, 0 , (LPVOID *)ppHtmlDoc);
    return SUCCEEDED(hr);
    }//根据接口获得hTML代码
    CComPtr<IHTMLElement> pElement;
    pIHtmlDoc->get_body(&pElement);
    CComBSTR strHtml;
    pElement->get_innerHTML(&strHtml);
      

  4.   

    你是想要做什么功能,Chtmlview,webbrowser都可以显示,如果不显示的话你就直接用wininit方法好了
      

  5.   

    #include "winsock2.h"
    #include "stdio.h"
    #include "Wininet.h" 
    #pragma comment (lib,"Wininet.lib")void main()
    {
    FILE *fw;
    fw=fopen("log.log","w"); int i,k;HINTERNET hNet = ::InternetOpen("Google page",        //当HTTP协议使用时,这个参数随意赋值
                                    PRE_CONFIG_INTERNET_ACCESS,  //访问类型指示Win32网络函数使用登记信息去发现一个服务器。
                                    NULL,
                                    INTERNET_INVALID_PORT_NUMBER, //使用INTERNET_INVALID_PORT_NUMBER相当于提供却省的端口数。        
                                    0               //标志去指示使用返回句句柄的将来的Internet函数将"不"为回调函数发送状态信息
                    ) ;HINTERNET hUrlFile = ::InternetOpenUrl(hNet,         //从InternetOpen返回的句柄
                                    "http://",   //需要打开的URL
                                    NULL,             //用来向服务器传送额外的信息,一般为NULL
                                    0,              //用来向服务器传送额外的信息,一般为 0
                                    INTERNET_FLAG_RELOAD,     //InternetOpenUrl行为的标志
                                    0) ;             //信息将不会被送到状态回调函数char buffer[1024] ;
    char temp_buffer[100];
    char ip[16];int ip_len;
    DWORD dwBytesRead = 0;
    BOOL bRead = ::InternetReadFile(hUrlFile,           //InternetOpenUrl返回的句柄
                                    buffer,            //保留数据的缓冲区
                                    sizeof(buffer),
                                    &dwBytesRead);        //指向包含读入缓冲区字节数的变量的指针;
                                   //如果返回值是TRUE,而且这里指向0,则文件已经读到了文件的末尾。::InternetCloseHandle(hUrlFile) ;
    ::InternetCloseHandle(hNet) ;fprintf(fw,"%s",buffer);memset(ip,0,16);
    memset(temp_buffer,0,100); for(i=0;i<100;i++)
    {
    temp_buffer[i]=buffer[i+5];
    if((buffer[i+5]==' ')&&(buffer[i+6]=='-')&&(buffer[i+7]=='-')&&(buffer[i+8]=='>'))
    break;
    } k=i;

    printf("%s\n",temp_buffer); char* pszSrc = new char[k + 1];
    int len_src = Base64Decode(pszSrc, temp_buffer);
    printf("%s",pszSrc);
    printf("\n"); for(i=0;i<k;i++)
    {
    if(pszSrc[i]!=':')
    ip[i]=pszSrc[i];
    else 
    break;
    }
    ip_len=i; printf("%s\n",ip); fclose(fw);}