Compartir a través de


Función PropVariantToInt16Vector (propvarutil.h)

Extrae un vector de valores Int16 de una estructura PROPVARIANT .

Sintaxis

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

Parámetros

[in] propvar

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] prgn

Tipo: SHORT*

Apunta a un búfer que contiene valores SHORT de crgn . Cuando se devuelve esta función, el búfer se ha inicializado con elementos pcElem SHORT extraídos de la estructura 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 devuelve, contiene el recuento de elementos Int16 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 . Búfer al que apunta prgn.
E_INVALIDARG
ElPROPVARIANT 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 valor vectorial Int16 con un número fijo de elementos.

Si el PROPVARIANT de origen tiene VT_VECTOR de tipo | VT_I2 o VT_ARRAY | VT_I2, esta función auxiliar extrae hasta los valores de crgn Int16 y los coloca en el búfer al que apunta prgn. Si el PROPVARIANT 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

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

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

InitPropVariantFromInt16Vector

PropVariantGetInt16Elem

PropVariantToInt16

PropVariantToInt16VectorAlloc

VariantToInt16Array