Compartilhar via


Função VariantToDoubleArray (propvarutil.h)

Extrai uma matriz de valores DOUBLE de uma estrutura VARIANT .

Sintaxe

PSSTDAPI VariantToDoubleArray(
  [in]  REFVARIANT var,
  [out] DOUBLE     *prgn,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Parâmetros

[in] var

Tipo: REFVARIANT

Referência a uma estrutura VARIANT de origem.

[out] prgn

Tipo: DOUBLE*

Ponteiro para um buffer que contém valores CRGNDOUBLE . Quando essa função retorna, o buffer foi inicializado com elementos *pcElemDOUBLE extraídos da estrutura VARIANT de origem.

[in] crgn

Tipo: ULONG

O número de elementos no buffer apontado por prgn.

[out] pcElem

Tipo: ULONG*

Quando essa função retorna, contém a contagem de elementos DOUBLE extraídos da estrutura VARIANT de origem.

Retornar valor

Tipo: HRESULT

Retorna S_OK se tiver êxito ou um valor de erro, caso contrário, incluindo o seguinte:

Código de retorno Descrição
TYPE_E_BUFFERTOOSMALL
A VARIANT de origem continha mais do que valores crgn .
E_INVALIDARG
A VARIANT não era do tipo apropriado.

Comentários

Essa função auxiliar é usada quando o aplicativo de chamada espera que uma VARIANT mantenha uma matriz que consiste em um número fixo de valores DOUBLE .

Se a VARIANT de origem tiver VT_ARRAY de tipo | VT_DOUBLE, essa função extrai até valores CRGNDOUBLE e os coloca no buffer apontado por prgn.

Se VARIANT contiver mais elementos do que caberá no buffer prgn , essa função retornará um erro e definirá *pcElem como 0.

Exemplos

O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar VariantToDoubleArray para acessar uma matriz DOUBLE armazenada em uma VARIANT.

// VARIANT var;
// Assume variable var is initialized and valid.
DOUBLE rgDoubles[4]; // The application expects var to hold 4 DOUBLEs in an array.
ULONG cDoubles;

HRESULT hr = VariantToDoubleArray(var, rgDoubles, ARRAYSIZE(rgDoubles), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgDoubles))
    {
        // The application got 4 DOUBLEs which are now stored in rgDoubles.
    }
    else
    {
        // The application got *pcElem DOUBLEs which are stored in the first 
        // *pcElem elements of rgDoubles.
    }
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho propvarutil.h
Biblioteca Propsys.lib
DLL Propsys.dll (versão 6.0 ou posterior)
Redistribuível Pesquisa da Área de Trabalho do Windows (WDS) 3.0

Confira também

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc