频道栏目
读书频道 > 软件开发 > C++ > Visual C++串口通信技术详解(第2版)
(2)SAFEARRAY结构常用处理函数
2013-08-08 10:32:16     我来说两句
收藏   我要投稿
本书介绍如何利用Visual C++集成开发环境进行串口通信程序开发的前沿实用技术。书中精选来自工程实践的应用范例,主要涵盖串口通信的理论基础、Visual C++集成开发环境简介、MSComm控件串口编程、Windows API...  立即去当当网订购

为确保SAFEARRAY结构的安全性,用户不能直接操作SAFEARRAY结构的分量,只能通过系统提供的函数实现操作。下面说明Windows平台中操作SAFEARRAY结构的几个常用函数。

SAFEARRAY *SafeArrayCreateVector(VARTYPE vt,long lLbound,unsigned int cElements);

该函数将创建一维数组的SAFEARRAY结构。这里,参数vt是SAFEARRAY结构的类型(例如,字节数组的vt值为VT_UI1);参数lLbound是一维数组的下界(可为负数);参数cElements是一维数组的元素个数。该函数的返回值是一个指向SAFEARRAY结构的指针。

HRESULT SafeArrayAccessData(SAFEARRAY FAR*psa,void HUGEP*FAR*ppvData);

该函数将返回指定SAFEARRAY结构中的数据区。这里,参数psa是待获取的SAFEARRAY结构的指针;参数ppvData是返回的指向数据区指针的指针,即(*ppvData)是指向数据区的指针。该函数的返回值HRESULT指示了函数操作是否成功。

HRESULT SafeArrayUnaccessData(SAFEARRAY FAR* psa);

该函数和SafeArrayAccessData()函数对应,每次使用SafeArrayAccessData()函数后,SAFEARRAY结构将增加一次锁定,而每次使用SafeArrayUnaccessData()函数后,SAFEARRAY结构将减少一次锁定。

UINT SafeArrayGetDim(SAFEARRAY FAR* psa);

该函数将获取SAFEARRAY中的维数。

HRESULT SafeArrayGetLBound(SAFEARRAY FAR*psa,unsigned int nDim,long FAR*plLbound);

该函数将获取SAFEARRAY结构中指定维的下界。这里,参数psa是指向SAFEARRAY结构的指针;参数nDim是指定维,在一维数组中其值为1;参数plLbound是指向下界的指针。该函数的返回值HRESULT指示了函数操作是否成功。
HRESULT SafeArrayGetUBound(SAFEARRAY FAR*psa,unsigned int nDim,long FAR*plUbound);

该函数和SafeArrayGetLBound()函数对应,获取SAFEARRAY结构中指定维的上界。

HRESULT SafeArrayPutElement(SAFEARRAY FAR*psa,long FAR*rgIndices,void FAR*pv);
该函数给SAFEARRAY结构中的指定元素赋值。这里,参数psa是指向SAFEARRAY结构的指针;参数rgIndices存储了元素在每一维中的位置(例如rgIndices[0]是元素在第一维中的位置,rgIndices[1]是元素在第二维中的位置);参数pv指向所赋值的指针。该函数的返回值HRESULT指示了函数操作是否成功。

HRESULT SafeArrayDestroy(SAFEARRAY FAR*psa);

该函数释放一个SAFEARRAY结构的数组。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.SAFEARRAY数据结构
下一篇:(3)使用SAFEARRAY结构创建数组的常用方法
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站