Función PropVariantToDoubleVector (propvarutil.h)
Extrae un vector de dobles de una estructura PROPVARIANT .
Sintaxis
PSSTDAPI PropVariantToDoubleVector(
[in] REFPROPVARIANT propvar,
[out] DOUBLE *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
Parámetros
[in] propvar
Tipo: REFPROPVARIANT
Referencia a una estructura PROPVARIANT de origen.
[out] prgn
Tipo: DOUBLE*
Apunta a un búfer que contiene valores DOUBLE de crgn . Cuando se devuelve esta función, el búfer se ha inicializado con elementos dobles pcElem extraídos de la estructura PROPVARIANT de origen.
[in] crgn
Tipo: ULONG
Tamaño en elementos del búfer al que apunta prgn.
[out] pcElem
Tipo: ULONG*
Cuando se devuelve esta función, contiene el recuento de elementos dobles extraídos de la estructura PROPVARIANT de origen.
Valor devuelto
Tipo: HRESULT
Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Esta función auxiliar se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un valor de vector doble con un número fijo de elementos.
Si el PROPVARIANT de origen tiene VT_VECTOR de tipo | VT_R8 o VT_ARRAY | VT_R8, esta función auxiliar extrae hasta valores dobles de crgn y los coloca en el búfer al que apunta prgn. Si el PROPVARIANT contiene más elementos de los que caben en el búfer prgn , esta función devuelve un error y establece pcElem en 0.
Ejemplos
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_GPS_DestLongitude, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_GPS_DestLongitude is expected to produce a VT_VECTOR | VT_R8 with three values, or VT_EMPTY
// PropVariantToDoubleVector will return an error for VT_EMPTY
DOUBLE rgLongitude[3];
ULONG cElem;
hr = PropVariantToDoubleVector(propvar, &rgLongitude, ARRAYSIZE(rgLongitude), &cElem);
if (SUCCEEDED(hr))
{
if (cElem == ARRAYSIZE(rgLongitude))
{
// rgLongitude contains 3 doubles representing the degrees, minutes, and seconds of longitude
}
else
{
// The first cElem doubles from propvar are stored in the first 3 elements of rgLongitude
}
else
{
// propvar either is VT_EMPTY, or contains something other than a vector of 3 doubles
}
PropVariantClear(&propvar);
}
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 | Windows Desktop Search (WDS) 3.0 |
Consulte también
InitPropVariantFromDoubleVector