COleSafeArray – třída
Třída pro práci s poli libovolného typu a dimenze.
Syntaxe
class COleSafeArray : public tagVARIANT
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleSafeArray::COleSafeArray | COleSafeArray Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
COleSafeArray::AccessData | Načte ukazatel na data pole. |
COleSafeArray::AllocData | Přidělí paměť pro pole. |
COleSafeArray::AllocDescriptor | Přidělí paměť pro bezpečný popisovač pole. |
COleSafeArray::Attach | Dává řízení existujícího VARIANT pole objektu COleSafeArray . |
COleSafeArray::Clear | Uvolní všechna data v podkladovém VARIANT objektu . |
COleSafeArray::Copy | Vytvoří kopii existujícího pole. |
COleSafeArray::Create | Vytvoří bezpečné pole. |
COleSafeArray::CreateOneDim | Vytvoří jednorozměrný COleSafeArray objekt. |
COleSafeArray::D estroy | Zničí existující pole. |
COleSafeArray::D estroyData | Zničí data v bezpečném poli. |
COleSafeArray::D estroyDescriptor | Zničí popisovač bezpečného pole. |
COleSafeArray::D etach | Odpojte pole VARIANT od objektu COleSafeArray (aby data nebyla uvolněna). |
COleSafeArray::GetByteArray | Zkopíruje obsah bezpečného pole do CByteArray. |
COleSafeArray::GetDim | Vrátí počet dimenzí v matici. |
COleSafeArray::GetElement | Načte jeden prvek bezpečného pole. |
COleSafeArray::GetElemSize | Vrátí velikost v bajtech jednoho prvku v bezpečném poli. |
COleSafeArray::GetLBound | Vrátí dolní mez pro libovolnou dimenzi bezpečného pole. |
COleSafeArray::GetOneDimSize | Vrátí počet prvků v jednorozměrném COleSafeArray objektu. |
COleSafeArray::GetUBound | Vrátí horní mez pro libovolnou dimenzi bezpečného pole. |
COleSafeArray::Lock | Zvýší počet zámků pole a umístí ukazatel na maticová data v popisovači pole. |
COleSafeArray::P trOfIndex | Vrátí ukazatel na indexovaný prvek. |
COleSafeArray::P utElement | Přiřadí do pole jeden prvek. |
COleSafeArray::Redim | Změní nejméně významnou hranici (nejvíce vpravo) bezpečného pole. |
COleSafeArray::ResizeOneDim | Změní počet prvků v jednorozměrném COleSafeArray objektu. |
COleSafeArray::UnaccessData | Dekrementuje počet zámků pole a zneplatní ukazatel načtený AccessData . |
COleSafeArray::Unlock | Sníží počet uzamčení pole, aby bylo možné ho uvolnit nebo změnit jeho velikost. |
Veřejné operátory
Název | Popis |
---|---|
COleSafeArray::operator LPCVARIANT | Přistupuje k základní VARIANT struktuře objektu COleSafeArray . |
COleSafeArray::operator LPVARIANT | Přistupuje k základní VARIANT struktuře objektu COleSafeArray . |
COleSafeArray::operator = | Zkopíruje hodnoty do objektu COleSafeArray (SAFEARRAY , VARIANT , COleVariant nebo COleSafeArray pole). |
COleSafeArray::operator == | Porovná dvě variantní pole (SAFEARRAY , VARIANT , COleVariant nebo COleSafeArray matice). |
COleSafeArray::operator << |
Vypíše obsah COleSafeArray objektu do kontextu výpisu. |
Poznámky
COleSafeArray
je odvozena ze struktury OLE VARIANT
. Členské funkce OLE SAFEARRAY
jsou k dispozici prostřednictvím COleSafeArray
, stejně jako sada členských funkcí speciálně určených pro jednorozměrná pole bajtů.
Hierarchie dědičnosti
tagVARIANT
COleSafeArray
Požadavky
Hlavička: afxdisp.h
COleSafeArray::AccessData
Načte ukazatel na data pole.
void AccessData(void** ppvData);
Parametry
ppvData
Ukazatel na ukazatel na data pole.
Poznámky
Při chybě vyvolá funkce CMemoryException nebo COleException.
Příklad
void CMainFrame::Sort(VARIANT* vArray)
{
COleSafeArray sa;
BSTR* pbstr;
TCHAR buf[1024];
LONG cElements, lLBound, lUBound;
//needed for OLE2T macro below, include afxpriv.h
USES_CONVERSION;
// Type check VARIANT parameter. It should contain a BSTR array
// passed by reference. The array must be passed by reference it is
// an in-out-parameter.
if (V_VT(vArray) != (VT_ARRAY | VT_BSTR))
{
AfxThrowOleDispatchException(1001,
_T("Type Mismatch in Parameter. Pass a string array by reference"));
}
// clears data in sa and copies the variant data into sa
sa.Attach(*vArray);
// Check that array is 1 dimensional
if (sa.GetDim() != 1)
{
AfxThrowOleDispatchException(1002,
_T("Type Mismatch in Parameter. Pass a one-dimensional array"));
}
try
{
// Get array bounds.
sa.GetLBound(1, &lLBound);
sa.GetUBound(1, &lUBound);
// Get a pointer to the elements of the array
// and increments the lock count on the array
sa.AccessData((LPVOID*)& pbstr);
//get no. of elements in array
cElements = lUBound - lLBound + 1;
for (int i = 0; i < cElements; i++)
{
//output the elements of the array
_stprintf_s(buf, 1024, _T("[%s]\n"), OLE2T(pbstr[i]));
OutputDebugString(buf);
}
//decrement lock count
sa.UnaccessData();
}
catch (COleException* pEx)
{
AfxThrowOleDispatchException(1003,
_T("Unexpected Failure in FastSort method"));
pEx->Delete();
}
}
COleSafeArray::AllocData
Přidělí paměť pro bezpečné pole.
void AllocData();
Poznámky
Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::AllocDescriptor
Přidělí paměť pro popisovač bezpečného pole.
void AllocDescriptor(DWORD dwDims);
Parametry
dwDims
Počet dimenzí v bezpečném poli
Poznámky
Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::Attach
Poskytuje kontrolu nad daty v existujícím VARIANT
poli objektu COleSafeArray
.
void Attach(VARIANT& varSrc);
Parametry
varSrc
Objekt VARIANT
. Parametr varSrc musí mít VT_ARRAY VARTYPE.
Poznámky
Typ zdroje VARIANT
je nastavený na VT_EMPTY. Tato funkce vymaže aktuální maticová data, pokud existuje.
Příklad
Podívejte se na příklad pro COleSafeArray::AccessData.
COleSafeArray::Clear
Vymaže bezpečné pole.
void Clear();
Poznámky
Funkce vymaže bezpečné pole nastavením VARTYPE
objektu na VT_EMPTY. Aktuální obsah se uvolní a pole se uvolní.
COleSafeArray::COleSafeArray
COleSafeArray
Vytvoří objekt.
COleSafeArray();
COleSafeArray(
const SAFEARRAY& saSrc,
VARTYPE vtSrc);
COleSafeArray(
LPCSAFEARRAY pSrc,
VARTYPE vtSrc);
COleSafeArray(const COleSafeArray& saSrc);
COleSafeArray(const VARIANT& varSrc);
COleSafeArray(LPCVARIANT pSrc);
COleSafeArray(const COleVariant& varSrc);
Parametry
saSrc
Existující COleSafeArray
objekt nebo SAFEARRAY
který se má zkopírovat do nového COleSafeArray
objektu.
vtSrc
VARTYPE nového COleSafeArray
objektu.
psaSrc
Ukazatel na zkopírovaný SAFEARRAY
do nového COleSafeArray
objektu.
varSrc
Existující VARIANT
objekt nebo COleVariant
objekt, který se má zkopírovat do nového COleSafeArray
objektu.
pSrc
Ukazatel na VARIANT
objekt, který se má zkopírovat do nového COleSafeArray
objektu.
Poznámky
Všechny tyto konstruktory vytvářejí nové COleSafeArray
objekty. Pokud neexistuje žádný parametr, vytvoří se prázdný COleSafeArray
objekt (VT_EMPTY). COleSafeArray
Je-li zkopírována z jiného pole, jehož varTYPE je známo implicitně (a COleSafeArray
, COleVariant
nebo VARIANT
), varTYPE zdrojového pole je zachována a není nutné jej zadat. Pokud se zkopíruje COleSafeArray
z jiného pole, jehož varTYPE není známo (SAFEARRAY
), musí být v parametru vtSrc zadán varTYPE.
Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::Copy
Vytvoří kopii existujícího bezpečného pole.
void Copy(LPSAFEARRAY* ppsa);
Parametry
ppsa
Ukazatel na umístění, ve kterém se má vrátit nový popisovač pole.
Poznámky
Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::Create
Přidělí a inicializuje data pro pole.
void Create(
VARTYPE vtSrc,
DWORD dwDims,
DWORD* rgElements);
void Create(
VARTYPE vtSrc,
DWORD dwDims,
SAFEARRAYBOUND* rgsabounds);
Parametry
vtSrc
Základní typ pole (to znamená VARTYPE každého prvku pole). VARTYPE je omezen na podmnožinu typů variant. Není možné nastavit VT_ARRAY ani příznak VT_BYREF. VT_EMPTY a VT_NULL nejsou platné základní typy pole. Všechny ostatní typy jsou legální.
dwDims
Počet dimenzí v matici To lze změnit po vytvoření pole pomocí Redim.
rgElements
Ukazatel na matici počtu prvků pro každou dimenzi v matici.
rgsabounds
Ukazatel na vektor hran (jeden pro každou dimenzi) pro přidělení pole.
Poznámky
Tato funkce v případě potřeby vymaže aktuální data pole. Při chybě vyvolá funkce výjimku CMemoryException.
Příklad
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
ASSERT(saMatrix.GetDim() == 2);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);
ASSERT(saVector.GetDim() == 1);
COleSafeArray::CreateOneDim
Vytvoří nový jednorozměrný COleSafeArray
objekt.
void CreateOneDim(
VARTYPE vtSrc,
DWORD dwElements,
const void* pvSrcData = NULL,
long nLBound = 0);
Parametry
vtSrc
Základní typ pole (to znamená VARTYPE každého prvku pole).
DwElements
Počet prvků v poli To lze změnit po vytvoření pole pomocí ResizeOneDim.
pvSrcData
Ukazatel na data, která chcete zkopírovat do pole.
nLBound
Dolní mez pole.
Poznámky
Funkce přidělí a inicializuje data pro pole a zkopíruje zadaná data, pokud ukazatel pvSrcData nemá hodnotu NULL.
Při chybě vyvolá funkce výjimku CMemoryException.
Příklad
VARIANT varColInfo[3];
//initialize VARIANTs
for (int i = 0; i < 3; i++)
VariantInit(&varColInfo[i]);
// Column Name
varColInfo[0].vt = VT_BSTR;
varColInfo[0].bstrVal = ::SysAllocString(L"Name");
// Column Type
varColInfo[1].vt = VT_UI4;
varColInfo[1].lVal = 1;
COleSafeArray sa;
//create a 1 dimensional safearray of VARIANTs
//& initialize it with varColInfo VARIANT array
sa.CreateOneDim(VT_VARIANT, 2, varColInfo);
//check that the dimension is 2
ASSERT(sa.GetOneDimSize() == 2);
//increase safearray size by 1
sa.ResizeOneDim(3);
// populate the last element of the safearray, (Column Size)
varColInfo[2].vt = VT_I4;
varColInfo[2].lVal = 30;
long el = 2;
sa.PutElement(&el, &varColInfo[2]);
COleSafeArray::D estroy
Zničí existující popisovač pole a všechna data v poli.
void Destroy();
Poznámky
Pokud jsou objekty uloženy v poli, každý objekt se uvolní. Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::D estroyData
Zničí všechna data v bezpečném poli.
void DestroyData();
Poznámky
Pokud jsou objekty uloženy v poli, každý objekt se uvolní. Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::D estroyDescriptor
Zničí popisovač bezpečného pole.
void DestroyDescriptor();
Poznámky
Při chybě vyvolá funkce CMemoryException nebo COleException.
COleSafeArray::D etach
Odpojte VARIANT
data od objektu COleSafeArray
.
VARIANT Detach();
Návratová hodnota
Podkladová VARIANT
hodnota v objektu COleSafeArray
.
Poznámky
Funkce odpojte data v bezpečném poli nastavením VARTYPE objektu na VT_EMPTY. Je zodpovědností volajícího uvolnit pole voláním funkce Windows VariantClear.
Při chybě vyvolá funkce výjimku COleException.
Příklad
Podívejte se na příklad pro COleSafeArray::P utElement.
COleSafeArray::GetByteArray
Zkopíruje obsah bezpečného pole do pole CByteArray
.
void GetByteArray(CByteArray& bytes);
Parametry
byty
Odkaz na CByteArray objektu.
COleSafeArray::GetDim
Vrátí počet dimenzí v objektu COleSafeArray
.
DWORD GetDim();
Návratová hodnota
Početdimenzíchch
Příklad
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
ASSERT(saMatrix.GetDim() == 2);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);
ASSERT(saVector.GetDim() == 1);
COleSafeArray::GetElement
Načte jeden prvek bezpečného pole.
void GetElement(
long* rgIndices,
void* pvData);
Parametry
rgIndikes
Ukazatel na pole indexů pro každou dimenzi pole.
pvData
Ukazatel na umístění pro umístění prvku pole.
Poznámky
Tato funkce automaticky volá funkce SafeArrayLock
systému Windows a SafeArrayUnlock
před a po načtení prvku. Pokud datový prvek je řetězec, objekt nebo varianta, funkce zkopíruje prvek správným způsobem. Parametr pvData by měl odkazovat na dostatečně velkou vyrovnávací paměť, která bude obsahovat prvek.
Při chybě vyvolá funkce CMemoryException nebo COleException.
Příklad
//sa is of type COleSafeArray with 2 dimensions
//Determine upper bounds for both dimensions
long lNumRows;
long lNumCols;
sa.GetUBound(1, &lNumRows);
sa.GetUBound(2, &lNumCols);
//Display the elements in the SAFEARRAY.
long index[2];
VARIANT val;
//Determine lower bounds for both dimensions
long lowRow, lowCol;
sa.GetLBound(1, &lowRow);
sa.GetLBound(2, &lowCol);
for (long r = lowRow; r <= lNumRows; r++)
{
for (long c = lowCol; c <= lNumCols; c++)
{
index[0] = r;
index[1] = c;
//retrieve each element of the safearray
sa.GetElement(index, &val);
switch (val.vt)
{
case VT_R8:
TRACE(_T("%1.2f\n"), val.dblVal);
break;
case VT_BSTR:
TRACE(_T("%s\n"), (CString)val.bstrVal);
break;
// other cases omitted
case VT_EMPTY:
TRACE(_T("<empty>\n"));
break;
}
}
}
COleSafeArray::GetElemSize
Načte velikost elementu v objektu COleSafeArray
.
DWORD GetElemSize();
Návratová hodnota
Velikost prvků bezpečného pole v bajtech.
COleSafeArray::GetLBound
Vrátí dolní mez pro libovolnou dimenzi objektu COleSafeArray
.
void GetLBound(
DWORD dwDim,
long* pLBound);
Parametry
dwDim
Dimenze pole, pro kterou chcete získat dolní mez.
pLBound
Ukazatel na umístění, které vrátí dolní mez.
Poznámky
Při chybě vyvolá funkce výjimku COleException.
Příklad
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
long lLBound;
//get lower bound for 1st dimension
saMatrix.GetLBound(1, &lLBound);
ASSERT(lLBound == 0);
//get lower for 2nd dimension
saMatrix.GetLBound(2, &lLBound);
ASSERT(lLBound == 0);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);
//get lower bound for 1st dimension
saVector.GetLBound(1, &lLBound);
ASSERT(lLBound == 1);
COleSafeArray::GetOneDimSize
Vrátí počet prvků v jednorozměrném COleSafeArray
objektu.
DWORD GetOneDimSize();
Návratová hodnota
Počet prvků v jednorozměrném bezpečném poli.
Příklad
Podívejte se na příklad pro COleSafeArray::CreateOneDim.
COleSafeArray::GetUBound
Vrátí horní mez pro libovolnou dimenzi bezpečného pole.
void GetUBound(
DWORD dwDim,
long* pUBound);
Parametry
dwDim
Rozměr pole, pro který se má získat horní mez.
pUBound
Ukazatel myši na umístění pro vrácení horní hranice.
Poznámky
Při chybě vyvolá funkce výjimku COleException.
Příklad
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
long lUBound;
ASSERT(saMatrix.GetDim() == 2);
//get upper bound for 1st dimension
saMatrix.GetUBound(1, &lUBound);
ASSERT(lUBound == 9);
//get upper bound for 2nd dimension
saMatrix.GetUBound(2, &lUBound);
ASSERT(lUBound == 4);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);
//get upper bound for 1st dimension
saVector.GetUBound(1, &lUBound);
ASSERT(lUBound == 5);
COleSafeArray::Lock
Zvýší počet zámků pole a umístí ukazatel na data pole v popisovači pole.
void Lock();
Poznámky
Při chybě vyvolá výjimku COleException.
Ukazatel v popisovači pole je platný, dokud Unlock
se nevolá. Lock
Volání můžou být vnořená. Vyžaduje se stejný počet voláníUnlock
.
Pole nelze odstranit, pokud je uzamčeno.
COleSafeArray::operator LPCVARIANT
Volání tohoto operátoru přetypování pro přístup k podkladové VARIANT
struktuře pro tento COleSafeArray
objekt.
operator LPCVARIANT() const;
COleSafeArray::operator LPVARIANT
Volání tohoto operátoru přetypování pro přístup k podkladové VARIANT
struktuře pro tento COleSafeArray
objekt.
operator LPVARIANT();
Poznámky
Všimněte si, že změna hodnoty ve VARIANT
struktuře, ke které přistupuje ukazatel vrácený touto funkcí, změní hodnotu tohoto COleSafeArray
objektu.
COleSafeArray::operator =
Tyto přetížené operátory přiřazení zkopírují zdrojová hodnota do tohoto COleSafeArray
objektu.
COleSafeArray& operator=(const COleSafeArray& saSrc);
COleSafeArray& operator=(const VARIANT& varSrc);
COleSafeArray& operator=(LPCVARIANT pSrc);
COleSafeArray& operator=(const COleVariant& varSrc);
Poznámky
Stručný popis každého operátoru:
operator =( saSrc ) Zkopíruje existující
COleSafeArray
objekt do tohoto objektu.operator =( varSrc ) Zkopíruje existující
VARIANT
neboCOleVariant
matici do tohoto objektu.operator =( pSrc ) Zkopíruje
VARIANT
objekt pole, ke který přistupuje pSrc , do tohoto objektu.
COleSafeArray::operator ==
Tento operátor porovná dvě matice (SAFEARRAY
, VARIANT
, COleVariant
, nebo COleSafeArray
matice) a vrátí nenulové hodnoty, pokud jsou rovny; jinak 0.
BOOL operator==(const SAFEARRAY& saSrc) const; BOOL operator==(LPCSAFEARRAY pSrc) const;
BOOL operator==(const COleSafeArray& saSrc) const; BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const; BOOL operator==(const COleVariant& varSrc) const;
Poznámky
Dvě pole jsou rovna, pokud mají stejný počet dimenzí, stejnou velikost v každé dimenzi a stejné hodnoty prvků.
COleSafeArray::operator <<
Operátor COleSafeArray
vložení (<<) podporuje diagnostické dumpingování a ukládání objektu COleSafeArray
do archivu.
CDumpContext& AFXAPI operator<<(
CDumpContext& dc,
COleSafeArray& saSrc);
COleSafeArray::P trOfIndex
Vrátí ukazatel na prvek určený hodnotami indexu.
void PtrOfIndex(
long* rgIndices,
void** ppvData);
Parametry
rgIndikes
Pole hodnot indexu, které identifikují prvek pole. Musí být zadány všechny indexy elementu.
ppvData
Při návratu ukazatel na prvek identifikovaný hodnotami v rgIndices.
COleSafeArray::P utElement
Přiřadí do pole jeden prvek.
void PutElement(
long* rgIndices,
void* pvData);
Parametry
rgIndikes
Ukazatel na pole indexů pro každou dimenzi pole.
pvData
Ukazatel na data, která chcete přiřadit k poli. VT_DISPATCH, VT_UNKNOWN a typy variant VT_BSTR jsou ukazatele a nevyžadují jinou úroveň nepřímého přesměrování.
Poznámky
Tato funkce automaticky volá funkce Systému Windows SafeArrayLock a SafeArrayUnlock před a po přiřazení elementu. Pokud je datovým prvkem řetězec, objekt nebo varianta, funkce ho správně zkopíruje a pokud je existujícím prvkem řetězec, objekt nebo varianta, vymaže se správně.
Všimněte si, že u pole můžete mít více zámků, takže můžete vložit prvky do pole, zatímco pole je uzamčeno jinými operacemi.
Při chybě vyvolá funkce CMemoryException nebo COleException.
Příklad
VARIANT retVariantArray()
{
COleSafeArray saRet;
DWORD numElements[] = { 10, 10 }; // 10x10
// Create the 2 dimensional safe-array of type VT_R8 with size 10x10
saRet.Create(VT_R8, 2, numElements);
// Initialize safearray with values...
long index[2];
for (index[0] = 0; index[0] < 10; index[0]++)
{
for (index[1] = 0; index[1] < 10; index[1]++)
{
double val = index[0] + index[1] * 10;
//populate the safearray elements with double values
saRet.PutElement(index, &val);
}
}
// Return the safe-array encapsulated in a VARIANT...
return saRet.Detach();
}
COleSafeArray::Redim
Změní nejméně významnou hranici (nejvíce vpravo) bezpečného pole.
void Redim(SAFEARRAYBOUND* psaboundNew);
Parametry
psaboundNew
Ukazatel na novou bezpečnou maticovou vazbu, která obsahuje novou vazbu pole. Je možné změnit pouze nejméně významnou dimenzi pole.
Poznámky
Při chybě vyvolá funkce výjimku COleException.
COleSafeArray::ResizeOneDim
Změní počet prvků v jednorozměrném COleSafeArray
objektu.
void ResizeOneDim(DWORD dwElements);
Parametry
DwElements
Počet prvků v jednorozměrném bezpečném poli
Poznámky
Při chybě vyvolá funkce výjimku COleException.
Příklad
Podívejte se na příklad pro COleSafeArray::CreateOneDim.
COleSafeArray::UnaccessData
Dekrementuje počet zámků pole a zneplatní ukazatel načtený AccessData
.
void UnaccessData();
Poznámky
Při chybě vyvolá funkce výjimku COleException.
Příklad
Podívejte se na příklad pro COleSafeArray::AccessData.
COleSafeArray::Unlock
Sníží počet uzamčení pole, aby bylo možné ho uvolnit nebo změnit jeho velikost.
void Unlock();
Poznámky
Tato funkce se volá po dokončení přístupu k datům v poli. Při chybě vyvolá výjimku COleException.
Viz také
Graf hierarchie
COleVariant – třída
CRecordset – třída
CDatabase – třída