Sdílet prostřednictvím


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 VARIANTobjektu .
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, COleVariantnebo COleSafeArray pole).
COleSafeArray::operator == Porovná dvě variantní pole (SAFEARRAY, VARIANT, COleVariantnebo 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 VARIANTje 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, COleVariantnebo 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 nebo COleVariant 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