一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

    SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。

1. SafeArrayAccessData

函数原型:

1 HRESULT SafeArrayAccessData(
2 
3   SAFEARRAY * psa,
4 
5   void HUGEP **  ppvData
6 
7 );

这个函数用于获取SafeArray的数据指针,并锁定SafeArray数组的数据。在取得了数据指针之后,就可以直接访问SafeArray数组中的数据了。

如果数组类型是Type,那么所取得的数据指针实际上就是Type类型的数组的地址。在多维数组的情况下,必须把多个维度的下标转换成一维下标进行访问。

2. SafeArrayUnaccessData
函数原型:

1 HRESULT SafeArrayUnaccessData(
2 
3   SAFEARRAY * psa
4 
5 );

这个函数的作用是对SafeArray数据解锁,解锁后,就不应该继续对数据指针进行读写访问。如果要访问,必须重新获取并锁定数据。

总结:
SafeArrayAccessData函数返回数组的指针。而SafeArrayUnaccessData释放通过SafeArrayAccessData所取得的指针。

3.使用例子:

posted on 2021-08-18 10:15  一杯清酒邀明月  阅读(397)  评论(0编辑  收藏  举报