分析COleSafeArray

COleSafeArray

COleSafeArray类是用于处理任意类型和维数的数组的类。COleSafeArray是从OLE VARIANT结构派生而来的。OLE SAFEARRAY成员函数在可以通过COleSafeArray来访问,就象是特别为一维的字节数组所设计的一个成员函数集。
#include
请参阅:COleVariant, CRecordset, CDatabase
  COleSafeArray类成员

构造 COleSafeArray 构造一个COleSafeArray对象

操作 Attach 给COleSafeArray对象以存在的VARIANT数组的控制
Clear 释放基VARIANT中的所有数据
Detach 将VARIANT数组从COleSafeArray对象中分离出来(这将使数据不会被释放)

Win32 API 包装 AccessData 获取一个指向数组数据的指针
AllocData 为数组分配内存
AllocDescriptor 为安全数组描述符分配内存
Copy 创建一个已存在的数组的拷贝
Create 创建一个安全数组
Destroy 销毁一个已经存在的数组
DestroyData 销毁一个安全数组中的数据
DestroyDescriptor 销毁一个安全数组的描述符
GetDim 返回数组的维数
GetElement 获取安全数组中的一个单一元素
GetElemSize 返回安全数组中一个元素的按字节表示的大小
GetLBound 返回一个安全数组任一维的下界
GetUBound 返回一个安全数组任一维的上界
Lock 增加一个数组的加锁计数,并将一个指向数组数据的指针放到数组描述符中
PtrOfIndex 返回一个指向被索引的元素的指针
PutElement 将一个单一的元素放入数组中
Redim 改变一个安全数组的最不重要(最右边)的边界
UnaccessData 减小一个数组的加锁计数,并使由AccessData获得的指针无效
Unlock 减小一个数组的加锁以使它能被释放或改变大小

一维数组操作 CreateOneDim 创建一个一维的COleSafeArray对象
GetOneDimSize 返回一个一维的COleSafeArray对象中的元素个数
ResizeOneDim 改变一个一维的COleSafeArray对象中的元素个数

操作 operator = 将一些值(包括SAFEARRAY,VARIANT,COleVariant,或COleSafeArray对象)拷贝到COleSafeArray对象中
operator == 比较两个不同的数组(SAFEARRAY,VARIANT,ColeVariant,或COleSafeArray对象)
operator
构造函数
    COleSafeArray::COleSafeArray

COleSafeArray();
COleSafeArray( const SAFEARRAY& saSrc, VARTYPE vtSrc );
COleSafeArray( LPCSAFEARRAY psaSrc, VARTYPE vtSrc );
COleSafeArray( const COleSafeArray& saSrc );
COleSafeArray( const VARIANT& varSrc );
COleSafeArray( LPCVARIANT pSrc );
COleSafeArray( const COleVariant& varSrc );

参数: saSrc 要被拷贝到新的COleSafeArray对象中去的已经存在的COleSafeArray对象或SAFEARRAY。
vtSrc 新的COleSafeArray对象的VARTYPE。
psaSrc 一个指向要被拷贝到新的COleSafeArray对象中去的SAFEARRAY的指针。
varSrc 要被拷贝到新的COleSafeArray对象中去的已经存在的VARIANT或者COleVariant。
pSrc 一个指向要被拷贝到新的COleSafeArray对象中去的VARIANT对象的指针。

说明:
所有这些构造函数都创建一个新的COleSafeArray对象。如果没有参数,则创建的是一个空的COleSafeArray对象(VT_EMPTY)。如果COleSafeArray是从另一个数组拷贝来的,并且这个数组的VARTYPE并不是完全确定的(一个COleSafeArray,COleVariant,或者VARIANT),则源数组中的VARTYPE被保留,并且不需要说明。如果COleSafeArray是从另一个数组拷贝而来,并且该数组的VARTYPE是不知道的,则VARTYPE必须用vtSrc参数来指定。
如果出错,则函数抛出一个CMemoryException或COleException。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值