16,471
社区成员
发帖
与我相关
我的任务
分享
varBlob=pRst->GetFields()->GetItem("flash")->GetChunk(m_iDataSize);
if(varBlob.vt==(VT_ARRAY|VT_UI1))
{
BYTE* pBuf = NULL;
pBuf = (BYTE*)GlobalAlloc(GMEM_FIXED, m_iDataSize);
HRESULT hr=SafeArrayAccessData(varBlob.parray, (void**)&pBuf); //返回值总是E_UNEXCEPTED
CFile f(strFileName, CFile::modeCreate | CFile::modeWrite);
LPSTR buffer = (LPSTR)GlobalLock((HGLOBAL)pBuf);
f.Write(buffer, m_iDataSize);
GlobalUnlock((HGLOBAL)pBuf);
SafeArrayUnaccessData (varBlob.parray); //这句话回导致后面的SetStaticText出错,见鬼了。
f.Close();
strFilesize.Format("Flash大小:%d",m_iDataSize);
SetStaticText(IDC_FILESIZE,strFilesize,RGB(0,0,255));
m_stTip.SetWindowText("正在播放数据库中的Flash对象");
m_swf.SetMovie(strFileName);
//立即删除文件,避免被偷偷拷贝
//DeleteFile(strFileName);
}
if(varBlob.vt==(VT_ARRAY|VT_UI1))
{
char *pBuf = NULL;
SafeArrayAccessData(varBlob.parray, (void **)&pBuf);
CFile f(strFileName, CFile::modeCreate | CFile::modeWrite);
f.Write(pBuf, m_iDataSize);
f.Close();
SafeArrayUnaccessData (varBlob.parray);
CPoint p(DLG_WIDTH,DLG_HEIGHT);//先放到屏幕看不到的位置。
m_flash.Create("ShockwaveFlash",WS_POPUP|WS_VISIBLE,m_RectFlash+p,this,ID_FLASHWIN,NULL,FALSE,NULL);
m_flash.SetMovie(strFileName);
m_flash.MoveWindow(m_RectFlash); //等加载完Flash后再挪过来。
//立即删除文件,避免被偷偷拷贝
DeleteFile(strFileName);
}
m_iDataSize = pRst->GetFields()->GetItem("flash")->ActualSize;
varBlob=pRst->GetFields()->GetItem("flash")->GetChunk(m_iDataSize);
if(varBlob.vt==(VT_ARRAY|VT_UI1))
{
BYTE* pBuf = NULL;
//pBuf = (BYTE*)GlobalAlloc(GMEM_FIXED, m_iDataSize);
HRESULT hr=SafeArrayAccessData(varBlob.parray, (void**)&pBuf); //返回值总是E_UNEXCEPTED
CFile f(strFileName, CFile::modeCreate | CFile::modeWrite);
//LPSTR buffer = (LPSTR)GlobalLock((HGLOBAL)pBuf);
//f.Write(buffer, m_iDataSize);
f.Write(pBuf, m_iDataSize);
//GlobalUnlock((HGLOBAL)pBuf);
SafeArrayUnaccessData (varBlob.parray); //这句话回导致后面的SetStaticText出错,见鬼了。
f.Close();
strFilesize.Format("Flash大小:%d",m_iDataSize);
SetStaticText(IDC_FILESIZE,strFilesize,RGB(0,0,255));
m_stTip.SetWindowText("正在播放数据库中的Flash对象");
m_swf.SetMovie(strFileName);
//立即删除文件,避免被偷偷拷贝
//DeleteFile(strFileName);
}