我想在程序的界面上显示一个URL指定的图片,在OnEraseBkgnd()里面加上了 char url[255]="D:\\VC2005\\2\\1.bmp";//此处更改URL//本地路径可以,网络路径有的不行,为什么?  ShowPic(url,GetSafeHwnd());然后在CDIALOGDlg.cpp文件里加上如下代码:
HRESULT CDIALOGDlg::ShowPic(char *lpstrImgUrl,HWND hWnd) 
{   HDC hDC_Temp=::GetDC(hWnd);   IPicture *pPic; 
  IStream *pStm; 
  BOOL bResult; 
  DWORD dwFileSize,dwByteRead;   //读取网页上图片文件,实际是个CHttpFile指针
  CInternetSession session("HttpClient");
  CFile* httpFile = (CFile*)session.OpenURL(lpstrImgUrl);  if (httpFile!=INVALID_HANDLE_VALUE) 
  { 
  dwFileSize= httpFile->GetLength();//获取文件字节数 
  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); 
  CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);   //装入图形文件 
  bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic); 
  if(FAILED(bResult)) 
  return E_FAIL;   OLE_XSIZE_HIMETRIC hmWidth; //图片的真实宽度, 单位为英寸 
  OLE_YSIZE_HIMETRIC hmHeight; //图片的真实高度, 单位为英寸 
  pPic->get_Width(&hmWidth); 
  pPic->get_Height(&hmHeight);   //转换hmWidth和hmHeight为pixels距离,1英寸=25.4毫米 
  int nWidth = MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540); 
  int nHeight = MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540);   //将图形输出到屏幕上(有点像BitBlt) 
  bResult=pPic->Render(hDC_Temp,0,0,nWidth,nHeight, 
  0,hmHeight,hmWidth,-hmHeight,NULL); 
  pPic->Release();
  httpFile->Close();//关闭打开的文件 
  if (SUCCEEDED(bResult)) 
  { 
  return S_OK; 
  } 
  else 
  { 
  return E_FAIL; 
  } 
 }结果显示的时候本地路径可以但是网络图片有的可以有的不行,为什么?有知道的请回复,有完美解决的更好,急求