Partager via


CComSafeArray, classe

Cette classe est un wrapper pour la structure de SAFEARRAY .

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

Paramètres

  • T
    Le type de données à stocker dans le tableau.

Membres

Constructeurs publics

Nom

Description

CComSafeArray::CComSafeArray

Constructeur.

CComSafeArray::~CComSafeArray

Le destructeur.

Méthodes publiques

Nom

Description

CComSafeArray::Add

Ajoute un ou plusieurs éléments, ou une structure de SAFEARRAY , à CComSafeArray.

CComSafeArray::Attach

Joint une structure de SAFEARRAY à un objet d' CComSafeArray .

CComSafeArray::CopyFrom

Copie le contenu d'une structure de SAFEARRAY dans l'objet de CComSafeArray .

CComSafeArray::CopyTo

Crée une copie de l'objet CComSafeArray.

CComSafeArray::Create

Crée un objet CComSafeArray.

CComSafeArray::Destroy

Détruit un objet CComSafeArray.

CComSafeArray::Detach

Détache SAFEARRAY d'un objet d' CComSafeArray .

CComSafeArray::GetAt

Extrait un élément dans un tableau unique dimensionnelle.

CComSafeArray::GetCount

Retourne le nombre d'éléments du tableau.

CComSafeArray::GetDimensions

Retourne le nombre de dimensions du tableau.

CComSafeArray::GetLowerBound

Retourne la limite inférieure d'une dimension du tableau.

CComSafeArray::GetSafeArrayPtr

Retourne l'adresse des données membres d' m_psa .

CComSafeArray::GetType

Retourne le type de données stocké dans le tableau.

CComSafeArray::GetUpperBound

Retourne la limite supérieure pour toute dimension du tableau.

CComSafeArray::IsSizable

Teste si un objet d' CComSafeArray peut être redimensionné.

CComSafeArray::MultiDimGetAt

Extrait un élément dans un tableau multidimensionnel.

CComSafeArray::MultiDimSetAt

Définit la valeur d'un élément dans un tableau multidimensionnel.

CComSafeArray::Resize

Redimensionne un objet d' CComSafeArray .

CComSafeArray::SetAt

Définit la valeur d'un élément dans un tableau unique dimensionnelle.

Opérateurs publics

Nom

Description

CComSafeArray::operator LPSAFEARRAY

Effectue une valeur à un pointeur de SAFEARRAY .

CComSafeArray::operator []

Extrait un élément de tableau.

CComSafeArray::operator =

Opérateur d'assignation

Données membres publiques

Nom

Description

CComSafeArray::m_psa

Cette donnée membre contient l'adresse de la structure de SAFEARRAY .

Notes

CComSafeArray fournit un wrapper pour la classe de SAFEARRAY Data Type , la transformant chose facile de créer et de gérer unique et des tableaux multidimensionnels de types Variante- charge presque l'un des.

CComSafeArray simplifie le passage de tableaux entre les processus, et en outre fournit la sécurité en vérifiant les valeurs d'index de tableau à la limite supérieure et les limites inférieures.

La limite inférieure d' CComSafeArray peut commencer à n'importe quelle valeur définie par l'utilisateur ; toutefois, les tableaux qui sont accessibles via C++ doivent utiliser une limite inférieure de 0. D'autres langages tels que Visual Basic peuvent utiliser d'autres valeurs des englobant (par exemple, -10 à 10).

Utilisation CComSafeArray::Create de créer un objet d' CComSafeArray , et CComSafeArray::Destroy pour le supprimer.

CComSafeArray peut contenir un sous-ensemble suivant de types de données Variant :

VARTYPE

Description

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

pointeur décimal

VT_VARIANT

pointeur variant

VT_CY

Type de données de devise

Configuration requise

Header: atlsafe.h

Exemple

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

Voir aussi

Référence

CComSafeArray::Create

CComSafeArray::Destroy

Autres ressources

SAFEARRAY Data Type

Vue d'ensemble de la classe ATL