Compartir a través de


Función VariantToDoubleArray (propvarutil.h)

Extrae una matriz de valores DOUBLE de una estructura VARIANT .

Sintaxis

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

Parámetros

[in] var

Tipo: REFVARIANT

Referencia a una estructura VARIANT de origen.

[out] prgn

Tipo: DOUBLE*

Puntero a un búfer que contiene valores DOUBLE de crgn. Cuando esta función devuelve, el búfer se ha inicializado con los elementos *pcElemDOUBLE extraídos de la estructura VARIANT de origen.

[in] crgn

Tipo: ULONG

Número de elementos del búfer al que apunta prgn.

[out] pcElem

Tipo: ULONG*

Cuando esta función devuelve , contiene el recuento de elementos DOUBLE extraídos de la estructura VARIANT de origen.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente o un valor de error, incluido lo siguiente:

Código devuelto Descripción
TYPE_E_BUFFERTOOSMALL
El valor VARIANT de origen contenía más de valores crgn .
E_INVALIDARG
Variant no era del tipo adecuado.

Comentarios

Esta función auxiliar se usa cuando la aplicación que realiza la llamada espera que variant contenga una matriz que consta de un número fijo de valores DOUBLE .

Si el tipo VARIANT de origen tiene VT_ARRAY | VT_DOUBLE, esta función extrae hasta valores DOUBLE de crgn y los coloca en el búfer al que apunta prgn.

Si variant contiene más elementos de los que caberán en el búfer de prgn , esta función devuelve un error y establece *pcElem en 0.

Ejemplos

En el ejemplo siguiente, que se va a incluir como parte de un programa más grande, se muestra cómo usar VariantToDoubleArray para tener acceso a una matriz DOUBLE almacenada en un 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 Value
Cliente mínimo compatible Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado propvarutil.h
Library Propsys.lib
Archivo DLL Propsys.dll (versión 6.0 o posterior)
Redistribuible Búsqueda de escritorio de Windows (WDS) 3.0

Consulte también

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc