void CShowNetImageView::OnDraw(CDC* pDC)
{
CShowNetImageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CAtlHttpClient* client = new CAtlHttpClient();
if (client->Navigate( _T("http://www.baidu.com/img/baidu_sylogo1.gif") ))
{
if (client->GetStatus() == 200) // 200 = successful HTTP transaction
{
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, client->GetBodyLength());
void * pData = GlobalLock(hGlobal);
memcpy(pData, client->GetBody(), client->GetBodyLength());
GlobalUnlock(hGlobal);
IStream * pStream = NULL;
if (CreateStreamOnHGlobal(hGlobal, TRUE, & pStream) == S_OK)
{
CImage image;
if (SUCCEEDED(image.Load(pStream)))
{
image.Draw(pDC->GetSafeHdc(), 0, 0);
}
pStream -> Release();
}
GlobalFree(hGlobal);
CFile file;
file.Open(_T("D:\\ab.gif"), CFile::modeCreate | CFile::modeWrite );
file.Write(client->GetBody(), client->GetBodyLength());
file.Flush();
file.Close();
}
}
}
原作代码client没有释放,用的时候记得要释放一下
client->close();
delete client;
或者不要用CAtlHttpClient指针,用它的对象
client->close();
不管怎样都要记得释放