Classe di CComSafeArray

Questa classe è un wrapper per la struttura SAFEARRAY.

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

Parametri

  • T
    Il tipo di dati da archiviare nella matrice.

Membri

3xzbsee8.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

CComSafeArray::CComSafeArray

Costruttore.

CComSafeArray::~CComSafeArray

Il distruttore.

3xzbsee8.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

CComSafeArray::Add

Aggiunge uno o più elementi, o una struttura SAFEARRAY, a CComSafeArray.

CComSafeArray::Attach

Aggiunge una struttura SAFEARRAY a un oggetto CComSafeArray.

CComSafeArray::CopyFrom

Copia il contenuto di una struttura SAFEARRAY nell'oggetto CComSafeArray.

CComSafeArray::CopyTo

Crea una copia dell'oggetto CComSafeArray.

CComSafeArray::Create

Crea un oggetto CComSafeArray.

CComSafeArray::Destroy

Elimina un oggetto CComSafeArray.

CComSafeArray::Detach

Rimuove SAFEARRAY da un oggetto CComSafeArray.

CComSafeArray::GetAt

Recupera un singolo elemento da una matrice unidimensionale.

CComSafeArray::GetCount

Restituisce il numero di elementi nella matrice.

CComSafeArray::GetDimensions

Restituisce il numero di dimensioni della matrice.

CComSafeArray::GetLowerBound

Restituisce il limite inferiore per una determinata dimensione della matrice.

CComSafeArray::GetSafeArrayPtr

Restituisce l'indirizzo del membro dati m_psa.

CComSafeArray::GetType

Restituisce il tipo di dati memorizzati nella matrice.

CComSafeArray::GetUpperBound

Restituisce il limite superiore per qualsiasi dimensione della matrice.

CComSafeArray::IsSizable

Verifica se un oggetto CComSafeArray possono essere ridimensionati.

CComSafeArray::MultiDimGetAt

Recupera un singolo elemento da una matrice multidimensionale.

CComSafeArray::MultiDimSetAt

Imposta il valore di un elemento in una matrice multidimensionale.

CComSafeArray::Resize

Ridimensiona un oggetto CComSafeArray.

CComSafeArray::SetAt

Imposta il valore di un elemento in una matrice unidimensionale.

3xzbsee8.collapse_all(it-it,VS.110).gifOperatori pubblici

Nome

Descrizione

CComSafeArray::operator LPSAFEARRAY

Esegue il cast di un valore a un puntatore SAFEARRAY.

CComSafeArray::operator []

Recupera un elemento dalla matrice.

CComSafeArray::operator =

Operatore di assegnazione.

3xzbsee8.collapse_all(it-it,VS.110).gifMembri dati pubblici

Nome

Descrizione

CComSafeArray::m_psa

Questo membro dati utilizza l'indirizzo della struttura SAFEARRAY.

Note

CComSafeArray fornisce wrapper per la classe SAFEARRAY Data Type, convertirlo è possibile creare e gestire solo e matrici multidimensionali di quasi qualsiasi dei tipi Variante- supportati.

CComSafeArray semplifica passare matrici tra processi e fornisce inoltre la sicurezza aggiuntiva controllando i valori di indice della matrice sui limiti superiore e inferiore.

Il limite inferiore CComSafeArray può iniziare a qualsiasi valore definito dall'utente; tuttavia, le matrici cui si accede con C++ devono utilizzare un limite inferiore a 0.Altri linguaggi quali Visual Basic possono utilizzare altri valori di delimitazione, ad esempio -10 - 10).

Utilizzo CComSafeArray::Create creare un oggetto CComSafeArray e CComSafeArray::Destroy per eliminarlo.

CComSafeArray può contenere l'sottoinsieme dei tipi di dati VARIABILI:

VARTYPE

Descrizione

VT_I1

char

VT_I2

short

VT_I4

int

VT_I4

long

VT_I8

longlong

VT_UI1

byte

VT_UI2

ushort

VT_UI4

uint

VT_UI4

ulong

VT_UI8

ulonglong

VT_R4

float

VT_R8

double

VT_DECIMAL

puntatore decimale

VT_VARIANT

puntatore variabile

VT_CY

Tipo di dati della valuta

Requisiti

Header: atlsafe.h

Esempio

// 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]);
   }   
}

Vedere anche

Riferimenti

SAFEARRAY Data Type

CComSafeArray::Create

CComSafeArray::Destroy

Altre risorse

I cenni preliminari sulle classi ATL