Partilhar via


Classe de CComSafeArray

Essa classe é um wrapper para a estrutura de SAFEARRAY .

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

Parâmetros

  • T
    O tipo de dados a serem armazenados na matriz.

Membros

3xzbsee8.collapse_all(pt-br,VS.110).gifConstrutores public

Nome

Descrição

CComSafeArray::CComSafeArray

o construtor.

CComSafeArray::~CComSafeArray

O destrutor.

3xzbsee8.collapse_all(pt-br,VS.110).gifMétodos públicos

Nome

Descrição

CComSafeArray::Add

Adiciona um ou mais elementos, ou uma estrutura de SAFEARRAY , a CComSafeArray.

CComSafeArray::Attach

Anexar uma estrutura de SAFEARRAY a um objeto de CComSafeArray .

CComSafeArray::CopyFrom

Copia o conteúdo de uma estrutura de SAFEARRAY no objeto de CComSafeArray .

CComSafeArray::CopyTo

Cria uma cópia do objeto de CComSafeArray .

CComSafeArray::Create

Cria um objeto de CComSafeArray .

CComSafeArray::Destroy

For um objeto de CComSafeArray .

CComSafeArray::Detach

Dispara SAFEARRAY de um objeto de CComSafeArray .

CComSafeArray::GetAt

Recupera um único elemento de uma matriz unidimensional.

CComSafeArray::GetCount

Retorna o número de elementos na matriz.

CComSafeArray::GetDimensions

Retorna o número de dimensões na matriz.

CComSafeArray::GetLowerBound

Retorna o limite inferior para uma determinada dimensão da matriz.

CComSafeArray::GetSafeArrayPtr

Retorna o endereço do membro de dados de m_psa .

CComSafeArray::GetType

Retorna o tipo de dados armazenados na matriz.

CComSafeArray::GetUpperBound

Retorna o limite superior de cada dimensão da matriz.

CComSafeArray::IsSizable

Teste se um objeto de CComSafeArray pode ser redimensionado.

CComSafeArray::MultiDimGetAt

Recupera um único elemento de uma matriz multidimensional.

CComSafeArray::MultiDimSetAt

Defina o valor de um elemento em uma matriz multidimensional.

CComSafeArray::Resize

Redimensiona um objeto de CComSafeArray .

CComSafeArray::SetAt

Defina o valor de um elemento em uma matriz unidimensional.

3xzbsee8.collapse_all(pt-br,VS.110).gifOperadores públicos

Nome

Descrição

CComSafeArray::operator LPSAFEARRAY

Converter um valor a um ponteiro de SAFEARRAY .

CComSafeArray::operator []

Recupera um elemento de matriz.

CComSafeArray::operator =

Operador de atribuição.

3xzbsee8.collapse_all(pt-br,VS.110).gifMembros públicos de dados

Nome

Descrição

CComSafeArray::m_psa

Este membro de dados contém o endereço da estrutura de SAFEARRAY .

Comentários

CComSafeArray fornece um wrapper para a classe de SAFEARRAY Data Type , tornando-o o uma simples questão criar e gerenciar único e matrizes multidimensionais de praticamente de tipos Variante- suportados.

CComSafeArray simplifica transmissão matrizes entre processos, e além fornece segurança adicional verificar valores de índice de matriz em relação aos limites superior e inferior.

O limite inferior de CComSafeArray pode começar em qualquer valor definido pelo usuário; no entanto, as matrizes que são acessados com C++ devem usar um limite inferior de 0.Outros idiomas como Visual Basic podem usar outros valores delimitador (por exemplo, -10 a 10).

Use CComSafeArray::Create para criar um objeto de CComSafeArray , e CComSafeArray::Destroy para excluí-lo.

CComSafeArray pode conter o seguinte subconjunto de tipos de dados VARIANTES:

VARTYPE

Descrição

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

ponto decimal

VT_VARIANT

ponteiro variante

VT_CY

tipo de dados Currency

Requisitos

Cabeçalho: atlsafe.h

Exemplo

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

Consulte também

Referência

SAFEARRAY Data Type

CComSafeArray::Create

CComSafeArray::Destroy

Outros recursos

Visão geral da classe de ATL