SafeArrayCreate
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 |