Compartilhar via


SafeArrayCreate

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função faz o seguinte:

  • Cria um descritor de matriz
  • Aloca e inicializa os dados para a matriz
  • Recupera um ponteiro para o novo descritor de matriz

Syntax

SAFEARRAY * SafeArrayCreate( 
  VARTYPE vt, 
  unsigned int cDims, 
  SAFEARRRAYBOUND FAR* rgsabound 
); 

Parameters

  • VT
    [no] Tipo base de matriz (o VarType de cada elemento da matriz). O VarType é restrito a um subconjunto da variante tipos.

    Nem VT_ARRAY o sinalizador VT_BYREF pode ser definido.

    VT_EMPTY e VT_NULL não são válido tipos de base para a matriz.

    Todos os outros tipos são legais.

  • cDims
    [no] Número de dimensões na matriz.

    O número não pode ser alterado depois que a matriz for criado.

  • rgsabound
    [no] Ponteiro para um vetor de circunda (um para cada dimensão) para alocar para a matriz.

Return Value

Retorna um ponteiro para um SafeArray estrutura.

Remarks

Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo. Ao implementar esta função, testar a legitimidade do valor de retorno, as in o seguinte exemplo codificar.

Example

HRESULT PASCAL __export CPoly::EnumPoints(IEnumVARIANT FAR* FAR* ppenum)
{
  unsigned int i;
  HRESULT hresult;
  VARIANT var;
  SAFEARRAY FAR* psa;
  CEnumPoint FAR* penum;
  POINTLINK FAR* ppointlink;
  SAFEARRAYBOUND rgsabound[1];
  rgsabound[0].lLbound = 0;
  rgsabound[0].cElements = m_cPoints;
  psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
  if(psa == NULL){HRESULT = ReportResult(0, E_OUTOFMEMORY, 0, 0);
    goto LError0}
  // Code omitted here for brevity.
LError0:;
  return hresult;
}

Requirements

Header oleauto.h
Library oleaut32.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Automation Functions
VARTYPE