Klasa CComSafeArray

Ta klasa jest otoki dla SAFEARRAY struktury.

template <
   typename T,
   VARTYPE _vartype = _ATL_AutomationType< T >::type
>
class CComSafeArray

Parametry

  • T
    Typ danych przechowywanych w tablicy.

Członkowie

Publiczne konstruktory

Nazwa

Opis

CComSafeArray::CComSafeArray

Konstruktor.

CComSafeArray:: ~ CComSafeArray

Destruktor.

Metody publiczne

Nazwa

Opis

CComSafeArray::Add

Dodaje jeden lub więcej elementów lub SAFEARRAY struktury do CComSafeArray.

CComSafeArray::Attach

Dołącza SAFEARRAY struktury do CComSafeArray obiektu.

CComSafeArray::CopyFrom

Kopiuje zawartość SAFEARRAY struktury do CComSafeArray obiektu.

CComSafeArray::CopyTo

Tworzy kopię CComSafeArray obiektu.

CComSafeArray::Create

Tworzy CComSafeArray obiektu.

CComSafeArray::Destroy

Niszczy CComSafeArray obiektu.

CComSafeArray::Detach

Odłącza SAFEARRAY z CComSafeArray obiektu.

CComSafeArray::GetAt

Pobiera pojedynczego elementu z tablicy jednowymiarowej.

CComSafeArray::GetCount

Zwraca liczbę elementów w tablicy.

CComSafeArray::GetDimensions

Zwraca liczbę wymiarów tablicy.

CComSafeArray::GetLowerBound

Zwraca dolną granicę dla danego wymiaru tablicy.

CComSafeArray::GetSafeArrayPtr

Zwraca adres m_psa elementu danych.

CComSafeArray::GetType

Zwraca typ danych przechowywanych w tablicy.

CComSafeArray::GetUpperBound

Zwraca górna granica dla każdego wymiaru tablicy.

CComSafeArray::IsSizable

Badania, jeśli CComSafeArray rozmiar obiektu można zmieniać.

CComSafeArray::MultiDimGetAt

Pobiera pojedynczego elementu z tablicy wielowymiarowej.

CComSafeArray::MultiDimSetAt

Ustawia wartość elementu w tablicy wielowymiarowej.

CComSafeArray::Resize

Zmienia rozmiar CComSafeArray obiektu.

CComSafeArray::SetAt

Ustawia wartość elementu w tablicy jednowymiarowej.

Podmioty publiczne

Nazwa

Opis

CComSafeArray::operator LPSAFEARRAY

Rzuca wartości do SAFEARRAY wskaźnik.

[CComSafeArray::operator]

Pobiera element z tablicy.

CComSafeArray::operator =

Operator przypisania.

Publiczne danych członków

Nazwa

Opis

CComSafeArray::m_psa

Ten element danych zawiera adres SAFEARRAY struktury.

Uwagi

CComSafeArrayzapewnia otoki dla SAFEARRAY Data Type klasy, co sprowadza do tworzenia i zarządzania jedno - i tablice wielowymiarowe z niemal dowolnego typu obsługiwane WARIANTU.

CComSafeArrayupraszcza przekazywanie tablic między procesami i dodatkowo zapewnia dodatkowe zabezpieczenie przez sprawdzanie tablicy wartości indeksu górnego i dolną.

Dolna granica CComSafeArray rozpoczynają się z wartości zdefiniowanych przez użytkownika; tablice, które są dostępne za pośrednictwem C++ należy jednak użyć dolną granicą 0.Inne języki, w tym Visual Basic może użyć innych wartości obwiedni (na przykład -10-10).

Użyj CComSafeArray::Create do tworzenia CComSafeArray obiektu, i CComSafeArray::Destroy go usunąć.

A CComSafeArray może zawierać następujące podzbiór wariant typów danych:

VARTYPE

Opis

VT_I1

CHAR

VT_I2

Krótka

VT_I4

int

VT_I4

długie

VT_I8

LONGLONG

VT_UI1

bajt

VT_UI2

USHORT

VT_UI4

uint

VT_UI4

ULONG

VT_UI8

ULONGLONG

VT_R4

Pływak

VT_R8

podwójne

VT_DECIMAL

wskaźnik dziesiętne

VT_VARIANT

wskaźnik wariantu

VT_CY

Typ danych Waluta

Wymagania

Nagłówek: atlsafe.h

Przykład

// Create a multidimensional array,  
// then write and read elements 

// Define an array of character pointers
CComSafeArray<char> *pSar;

char cElement;
char cTable[2][3] = {'A','B','C','D','E','F'};

// Declare the variable used to store the 
// array indexes
LONG aIndex[2];

// Define the array bound structure
CComSafeArrayBound bound[2];
bound[0].SetCount(3);
bound[0].SetLowerBound(0);
bound[1].SetCount(3);
bound[1].SetLowerBound(0);   

// Create a new 2 dimensional array 
// each dimension size is 3
pSar = new CComSafeArray<char>(bound,2); 

// Use MultiDimSetAt to store characters in the array 
for (int x = 0; x < 2; x++)
{
   for (int y = 0; y < 3; y++)
   {
      aIndex[0] = x;
      aIndex[1] = y;
      HRESULT hr = pSar->MultiDimSetAt(aIndex,cTable[x][y]);
      ATLASSERT(hr == S_OK);
   }
}
// Use MultiDimGetAt to retrieve characters in the array 
for (int x = 0; x < 2; x++)
{
   for (int y = 0; y < 3; y++)
   {
      aIndex[0]=x;
      aIndex[1]=y;
      HRESULT hr = pSar->MultiDimGetAt(aIndex,cElement);
      ATLASSERT(hr == S_OK);
      ATLASSERT(cElement == cTable[x][y]);
   }   
}

Zobacz też

Informacje

CComSafeArray::Create

CComSafeArray::Destroy

Inne zasoby

SAFEARRAY Data Type

Omówienie klasy ATL