void CPICView::OnDraw(CDC* pDC) 

CPICDoc* pDoc = GetDocument(); 
ASSERT_VALID(pDoc); IPicture *pPic; 
IStream *pStm; CFileStatus fstatus; 
CFile file; 
LONG cb; if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.jpg", 
fstatus)&& 
((cb = fstatus.m_size) != -1)) 

HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb); 
LPVOID pvData = NULL; 
if (hGlobal != NULL) 

if ((pvData = GlobalLock(hGlobal)) != NULL) 

file.ReadHuge(pvData, cb); 
GlobalUnlock(hGlobal); 
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID* 
)&pPic))) 

OLE_XSIZE_HIMETRIC hmWidth; 
OLE_YSIZE_HIMETRIC hmHeight; pPic->get_Width(&hmWidth); 
pPic->get_Height(&hmHeight); double fX,fY; 
fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->Ge 
tDeviceCaps(HORZSIZE)*100.0); 
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G 
etDeviceCaps(VERTSIZE)*100.0); 
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h 
mHeight,NULL))) 
AfxMessageBox("Failed To Render The picture!"); 
pPic->Release(); 

else 
AfxMessageBox("Error Loading Picture From Stream!"); 



else 
AfxMessageBox("Can"t Open Image File!");