使用SafeArrayCreate创建后,不用释放吗?

ar4ever 2007-09-27 09:58:59
unsigned long filelen=filegif.GetLength();
BYTE *buffer=(BYTE *)GlobalAlloc(GPTR,filelen);

SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];

filegif.Read(buffer,filelen);
filegif.Close();
BYTE *buffer1=buffer;

rgsabound[0].lLbound = 0;
rgsabound[0].cElements = filelen;

psa = SafeArrayCreate(VT_UI1, 1, rgsabound); //创建SAFEARRAY对象
for (long ilen = 0; ilen < (long)filelen; ilen++)
SafeArrayPutElement (psa, &ilen, buffer1++);


VARIANT varBlob;
varBlob.vt=VT_ARRAY | VT_UI1;
varBlob.parray=psa;
pRecordset->GetFields()->GetItem("FileKeyFrame")->AppendChunk(varBlob);
pRecordset->Update();
GlobalFree((HGLOBAL)buffer);
buffer1=NULL;

程序代码如上,程序中在使用了SafeArrayCreate后为什么不必释放呢?
我是新手,请各位大侠指导。
...全文
893 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ar4ever 2007-09-27
  • 打赏
  • 举报
回复
还用使用SafeArrayDestroy来释放吗?

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧