将数据流转换成JPEG图片时报各种不同的错,内存冲突的有关问题

将数据流转换成JPEG图片时报各种不同的错,内存冲突的问题
我是要将BYTE Pic[80000]这个数组里的数据流转换成JPEG图片
但总是在拍完几张到几十张不等的图片时就报错,而且报各种不同的错
比如:CommWizard.exe 中的 0x78215bef (mfc80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0xfdfdfd00 时发生访问冲突

CommWizard.exe 中的 0x00402a5d 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突

这大概是内存、堆、栈方面的问题,,但我对这个这些实在是很难理解,也查不出错。请求大侠们指点。
下面是我转图片的代码:
if(Picflag==true)
{
BYTE *pPict ;
pPict=Pic;
IPicture *pPic;
IStream* pStream;
HGLOBAL hGlobal;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_YSIZE_HIMETRIC m_JPGHeight;
long int nSize=sizeof(Pic);

hGlobal = GlobalAlloc(GMEM_MOVEABLE,nSize);
LPVOID pData=NULL;
pData=GlobalLock(hGlobal);
memcpy(pData, pPict, nSize);
GlobalUnlock(hGlobal);

CreateStreamOnHGlobal(hGlobal, TRUE, &pStream);

OleLoadPicture(pStream,nSize,TRUE,IID_IPicture,(LPVOID*)&pPic);

pPic->get_Height(&m_JPGHeight);
pPic->get_Width(&m_JPGWidth);
CRect lpRec;  
GetDlgItem(IDC_STATIC3)->GetWindowRect(&lpRec); 

ScreenToClient(&lpRec);

pPic->Render(GetDC()->m_hDC,lpRec.left,lpRec.top,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL); 
pPic->Release();
GlobalFree(hGlobal);
 
count=0;
memset(rxdata,0,sizeof(rxdata));
Picflag=false;
}

------解决方案--------------------
添加异常处理代码
------解决方案--------------------
添加异常处理代码
------解决方案--------------------
CreateStreamOnHGlobal 创建的Stream 没有释放, 
最后可能没有内存,导致OleLoadPicture失败
pPic 为NULL 调用get_Height 异常

以上仅为猜测