Compartilhar via


SafeArrayAllocDescriptor

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função aloca memória para um descritor SafeArray, permitindo a criação de safearrays que contêm elementos com tipos dados Other Than aqueles fornecidos por SafeArrayCreate.

Syntax

HRESULT SafeArrayAllocDescriptor( 
  unsigned int cDims, 
  SAFEARRAY FAR* FAR* ppsaOut 
); 

Parameters

  • cDims
    [no] Número de dimensões da matriz.
  • ppsaOut
    [out] Ponteiro para uma localidade no qual armazenar a descritor de matriz criado.

Return Value

Retorna os valores HRESULT mostrados a seguinte tabela.

Valor Descrição

S_OK

O sucesso.

E_INVALIDARG

O psa parâmetro não era um válido SafeArray descritor.

E_UNEXPECTED

A matriz não pôde ser bloqueado.

Remarks

Essa função permite a criação de safearrays que contêm elementos com dados tipos diferentes daqueles fornecidos por SafeArrayCreate.

Depois de criar um descritor de matriz usando SafeArrayAllocDescriptor, defina o tamanho elemento na descritor de matriz e chamar SafeArrayAllocData Para alocar memória para elementos de matriz.

Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo.

Example

O seguinte exemplo de código cria um SafeArray usando o SafeArrayAllocDescriptor e SafeArrayAllocData funções.

SAFEARRAY FAR* FAR*ppsa;
unsigned int ndim = 2;
HRESULT HRESULT = SafeArrayAllocDescriptor( ndim, ppsa );
if( FAILED( HRESULT ) )
  return ERR_OutOfMemory;
(*ppsa)->rgsabound[ 0 ].lLbound = 0;
(*ppsa)->rgsabound[ 0 ].cElements = 5;
(*ppsa)->rgsabound[ 1 ].lLbound = 1;
(*ppsa)->rgsabound[ 1 ].cElements = 4;
HRESULT = SafeArrayAllocData( *ppsa );
if( FAILED( HRESULT ) ) {
  SafeArrayDestroyDescriptor( *ppsa )
  return ERR_OutOfMemory;
}

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
SafeArrayAllocData
SafeArrayDestroyData
SafeArrayDestroyDescriptor