COleSafeArray類是用於處理任意類型和維數的數組的類。COleSafeArray是從OLE VARIANT結構派生而來的。OLE SAFEARRAY成員函數在可以通過COleSafeArray來訪問,就像是特別為一維的字節數組所設計的成員函數集。
#include<afxdisp.h>
請參閱: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增加一個數組的加鎖計數,並將一個指向數組數據的指針放到數組描述符中
PtrOflndex返回一個指向被索引的元素的指針
PtrElement將一個單一的元素放入數組中
Redim改變一個安全數組的最不重要(最右邊)的邊界
UnaccessData減小一個數組的加鎖計數,並使由AccessData獲得的指針無效
Unlock減小一個數組的加鎖以使它能被釋放或改變大小
一維數組操作CreateOneDim創建一個一維的COleSafeArray對象
GetOneDimSize返回一個一維的COleSafeArray對象中的元素個數
ResizeOneDim改變一個一維的COleSafeArray對象中的元素個數
操作operator = 將一些值(包括SAFEARRAY,VARIANT,COleVariant,或COleSafeArray對象)拷貝到COleSafeArray對象中
operator == 比較兩個不同的數組(SAFEARRAY,VARIANT,COleSafeArray對象)
operator << 向轉儲描述表輸出一個COleSafeArray對象的內容
operator LPVARIANT 訪問COleSafeArray對象的基VARIANT結構
operator LPCVARIANT 訪問COleSafeArray對象的基VARIANT結構
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是從另一個數組拷貝來的,並且這個數組的VARIANT並不是完全確定的(一個COleSafeArray,COleVariant,或者VARIANT),則源數組中的VARTYPE被保留,並且不需要說明。如果COleSafeArray是,從另一個數組拷貝而來,並且該數組的VARTYPE是不知道的,則VARTYPE必須用vtSrc參數來指定。
如果出錯,則函數拋出一個CMemoryException或COleException。