最近做一个程序,需要到一个网络地址获取图片,搜了一下午,网上的代码基本上都是差不多的,
大部分都是用 ipicture istream 和 chttpfile cinternetsession
//读取网页上图片文件,实际是个CHttpFile指针    
    CInternetSession session;    
    CFile* httpFile = NULL;
  httpFile = (CFile*)session.OpenURL("http://127.0.0.1/ddm.jpg");    
// CFile* httpFile = new CFile("C:\\Inetpub\\wwwroot\\ddm.jpg",CFile::modeRead);
    if (httpFile!=INVALID_HANDLE_VALUE)        
    {        
        dwFileSize=  httpFile->GetLength();//获取文件字节数        
::GetFileSize(httpFile,&dwFileSize);
        if (dwFileSize==0xFFFFFFFF)        
            return E_FAIL;        
    }        
    else        
    {        
        return E_FAIL;        
    }        


    //分配全局存储空间        
    HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);        
    LPVOID pvData = NULL;        

    if (hGlobal == NULL)        
        return E_FAIL;        

    if ((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块        
        return E_FAIL;        

    //把文件读入内存缓冲区        
    dwByteRead = httpFile->Read(pvData,dwFileSize);    

    GlobalUnlock(hGlobal);        
    bResult = CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);        
    //装入图形文件        
    bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);        
//当使用cinternetsession返回的file这里就会失败
    if(FAILED(bResult))        
        return E_FAIL;    
我的iis是打开的,用浏览器也是可以打开这幅图片,但是用openurl返回的httpfile老是失败,我直接用cfile直接打开,是成功的,后面的代码应该没有问题,所以想请教原因