Compartir a través de


Función PropVariantToInt64Vector (propvarutil.h)

Extrae datos de una estructura PROPVARIANT en un vector Int64 .

Sintaxis

PSSTDAPI PropVariantToInt64Vector(
  [in]  REFPROPVARIANT propvar,
  [out] LONGLONG       *prgn,
  [in]  ULONG          crgn,
  [out] ULONG          *pcElem
);

Parámetros

[in] propvar

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] prgn

Tipo: LONGLONG*

Apunta a un búfer que contiene valores longlong de crgn. Cuando se devuelve esta función, el búfer se ha inicializado con elementos pcElemLONGLONG extraídos del PROPVARIANT de origen.

[in] crgn

Tipo: ULONG

Tamaño del búfer al que apunta prgn en los elementos.

[out] pcElem

Tipo: ULONG*

Cuando esta función vuelve, contiene el recuento de valores longlong extraídos de la estructura PROPVARIANT de origen.

Valor devuelto

Tipo: HRESULT

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
Devuelve S_OK si se ejecuta correctamente o un valor de error de lo contrario.
TYPE_E_BUFFERTOOSMALL
El PROPVARIANT de origen contenía más de valores crgn . El búfer al que apunta prgn.
E_INVALIDARG
El PROPVARIANT no era del tipo adecuado

Comentarios

Esta función auxiliar se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un vector de valores LONGLONG con un número fijo de elementos.

Si el PROPVARIANT de origen tiene el tipo VT_VECTOR | VT_I8 o VT_ARRAY VT_I8 | , esta función auxiliar extrae hasta valoreslongLONG 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

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PropVariantToInt64Vector para tener acceso a un valor de vector Int64 en un PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
LONGLONG rgLongs[4]; // The application is expecting propvar to hold 4 LONGLONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToInt64Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 LONGLONGs which are now stored in rgLongs
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgLongs
     }
}

Requisitos

   
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

InitPropVariantFromInt64Vector

PropVariantGetInt64Elem

PropVariantToInt64

PropVariantToInt64VectorAlloc

VariantToInt64Array