首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

数据库读取图片数据,OleLoadPicture返回IPicture为空解决办法

2012-04-06 
数据库读取图片数据,OleLoadPicture返回IPicture为空求帮助从数据库中取得JPG图片数据,显示到界面。数据库

数据库读取图片数据,OleLoadPicture返回IPicture为空
求帮助
从数据库中取得JPG图片数据,显示到界面。
数据库中取得数据正常,创建ISTREAM正常,到了OleLoadPicture,返回的IPICTRUE指针为空?
这个是什么原因啊?
[code=C/C++][/code]
_variant_t varPicBianry;
OLE_XSIZE_HIMETRIC hmwidth;
OLE_XSIZE_HIMETRIC hmheihgt;
DWORD dataSize;
char * cPicBuffer;

varPicBianry = g_pRecordset->GetCollect("PicFile");
dataSize = g_pRecordset->GetFields()->GetItem("PicFile")->ActualSize;
if (dataSize>0)
{
if (varPicBianry.vt = (VT_UI1|VT_ARRAY))
{
if (cPicBuffer = new char[dataSize])
{
char * buff = (char*)malloc(720000);
SafeArrayAccessData(varPicBianry.parray,(void**)buff);
memcpy(cPicBuffer,buff,dataSize);
SafeArrayUnaccessData(varPicBianry.parray);
free(buff);//数据库取出数据


HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE,720000);
void * pImageMemoy = GlobalLock(hImageMemory);
memcpy(pImageMemoy,cPicBuffer,720000);
GlobalUnlock(hImageMemory);
delete(cPicBuffer);

IStream *pIStream;
IPicture *pIPicture;
CreateStreamOnHGlobal(hImageMemory,FALSE,&pIStream);//返回值为S_OK
HRESULT hr = OleLoadPicture(pIStream,720000,FALSE,IID_IPicture,(LPVOID*)&(pIPicture));
if (SUCCEEDED(hr)&&pIPicture)
{
pIPicture->get_Width(&hmwidth);
pIPicture->get_Height(&hmheihgt);
CWnd *pWnd = GetDlgItem(IDC_STATIC_PICTURE);
HWND pHnd = pWnd->m_hWnd;
HDC hDC = ::GetDC(pHnd);
pIPicture->Render(hDC,0,0,100,100,0,hmheihgt,hmwidth,-hmheihgt,NULL);
}
GlobalFree(hImageMemory);
pIStream->Release();
pIPicture->Release();
if (g_pRecordset != NULL)
{
g_pRecordset->Close();
g_pRecordset = NULL;
}
}
}
}

[解决办法]
学习者飘过
[解决办法]
看看OleLoadPicture的返回值是什么?

C/C++ code
Return ValuesThis function supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following: S_OK The picture was created successfully.E_POINTER The address in pStream or ppvObj is not valid. For example, either may be NULL.E_NOINTERFACE The object does not support the interface specified in riid. 

热点排行