Compartir a través de


Función PropVariantToUInt16Vector (propvarutil.h)

Extrae datos de una estructura PROPVARIANT en un vector de corto sin signo .

Sintaxis

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

Parámetros

[in] propvar

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] prgn

Tipo: USHORT*

Apunta a un búfer que contiene valores de cortos sin signo. Cuando se devuelve esta función, el búfer se ha inicializado con pcElemelementos de cortos sin signo extraídos del PROPVARIANT de origen.

[in] crgn

Tipo: ULONG

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

[out] pcElem

Tipo: ULONG*

Cuando se devuelve esta función, contiene el recuento de valores de cortos sin signo 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.

Observaciones

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

Si el PROPVARIANT de de origen tiene VT_VECTORVT_UI2 o VT_ARRAYVT_UI2, esta función auxiliar extrae hasta crgnvalores de cortos sin signo 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, que se va a incluir como parte de un programa mayor, se muestra cómo usar PropVariantToUInt16Vector para acceder a un valor de vector de corto sin signo en un PROPVARIANT.

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

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de propvarutil.h
biblioteca de Propsys.lib
DLL de Propsys.dll (versión 6.0 o posterior)
redistribuible Búsqueda de escritorio de Windows (WDS) 3.0

Consulte también

initPropVariantFromUInt16Vector

PropVariantGetUInt16Elem

PropVariantToUInt16

PropVariantToUInt16VectorAlloc

VariantToUInt16Array