什么资源没资源呢

什么资源没有资源呢?
//读取jpg格式图片
BOOL CCdfkDlg::Load(LPCTSTR lpszPathName)
{
BOOL bSuccess=FALSE;
CFile file;
//打开文件
if(!file.Open(lpszPathName,CFile::modeRead))
{
TRACE(_T("Failed to open file %s,Error %x"),lpszPathName,::GetLastError());
return FALSE;
}
//获取文件大小
DWORD dwFileSize=file.GetLength();
//以文件大小为基础分配内存
LPVOID pvData=NULL;
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,dwFileSize);
if(hGlobal==NULL)
{
TRACE(_T("Failed to allocate memory for file %s,Error %x"),lpszPathName,::GetLastError());
return FALSE;
}
pvData=GlobalLock(hGlobal);
if(pvData==NULL)
{
TRACE(_T("Failed to lock memory"));
return FALSE;
}
//读取文件,存储到全局内存
if(file.Read(pvData,dwFileSize)!=dwFileSize)
{
TRACE(_T("Failed to read image data from %s,Error:%x"),lpszPathName,::GetLastError());
GlobalUnlock(hGlobal);
GlobalFree(hGlobal);
return FALSE;
}
//整理内存,关闭文件句柄
GlobalUnlock(hGlobal);
//在全局内存中创建IStream*
LPSTREAM pStream=NULL;
if(FAILED(CreateStreamOnHGlobal(hGlobal,TRUE,&pStream)))
{
TRACE(_T("Failed to create IStream interface from %s,Error %x"),lpszPathName,::GetLastError());
GlobalFree(hGlobal);
return FALSE;
}
IPicture *pPic;
//从图片文件上创建IPicture
if (SUCCEEDED(::OleLoadPicture(pStream,dwFileSize,FALSE,IID_IPicture,(LPVOID*)&pPic)))
{
short nType=PICTYPE_UNINITIALIZED;
if(SUCCEEDED(pPic->get_Type(&nType))&&(nType==PICTYPE_BITMAP))
{
OLE_HANDLE hBitmap;
OLE_HANDLE hPalette;
if(SUCCEEDED(pPic->get_Handle(&hBitmap))&&SUCCEEDED(pPic->get_hPal(&hPalette)))
{
m_Bitmap.Attach((HWND)hBitmap);
m_Palette.Attach((HPALETTE)hPalette);
bSuccess=TRUE;
}
}
}
file.Close();
pStream->Release();
GlobalFree(hGlobal);
return bSuccess;
}

/*使加载的图片自适应控件大小*/
void CCdfkDlg::ZoomPic(CStatic* m_Pic)
{
BITMAP bm; //定义一个位图结构
m_Bitmap.GetBitmap(&bm);
CDC dcMem;
dcMem.CreateCompatibleDC(GetDC()); //创建一个兼容的DC
CBitmap* pOldBitmap=(CBitmap*)dcMem.SelectObject(m_Bitmap); //将位图选入设备环境类
CRect lRect;
m_Pic->GetClientRect(&lRect);
lRect.NormalizeRect();
m_Pic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(), 
&dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);//显示位图
dcMem.SelectObject(&pOldBitmap); //将原有的句柄选入设备环境
Unload();
}

/*卸载资源句柄*/
void CCdfkDlg::Unload()
{
m_Palette.Detach();
m_Bitmap.Detach();
}

每次加载图片内存都会变大一次,一直递增,这3个是显示图片的函数,有什么资源没有释放掉呢?

------解决方案--------------------


DeleteDC  == CreateCompatibleDC