Compartir a través de


Función PropVariantToBooleanVector (propvarutil.h)

Extrae un vector booleano de una estructura PROPVARIANT .

Sintaxis

PSSTDAPI PropVariantToBooleanVector(
  [in]  REFPROPVARIANT propvar,
  [out] BOOL           *prgf,
  [in]  ULONG          crgf,
  [out] ULONG          *pcElem
);

Parámetros

[in] propvar

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] prgf

Tipo: BOOL*

Apunta a un búfer que contiene valores BOOL crgf. Cuando se devuelve esta función, el búfer se ha inicializado con elementos booleanos pcElem extraídos de la estructura PROPVARIANT de origen.

[in] crgf

Tipo: ULONG

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

[out] pcElem

Tipo: ULONG*

Cuando esta función vuelve, contiene el recuento de elementos booleanos 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 crgf . El búfer al que apunta prgf.
E_INVALIDARG
El PROPVARIANT no era del tipo adecuado.

Comentarios

Esta función auxiliar se usa cuando la aplicación que realiza la llamada espera que un PROPVARIANT contenga un valor de vector booleano con un número fijo de elementos.

Si el PROPVARIANT de origen tiene VT_VECTOR de tipo | VT_BOOL o VT_ARRAY | VT_BOOL, esta función auxiliar extrae hasta valores booleanos crgf y los coloca en el búfer al que apunta prgf. Si el PROPVARIANT contiene más elementos de los que caben en el búfer prgf , esta función devuelve un error y establece pcElem en 0.

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa más grande, se muestra cómo usar PropVariantToBooleanVector para tener acceso a un vector booleano almacenado en un PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid.

// The application is expecting the propvar variable to hold 4 Booleans
// in a vector.
BOOL rgFlags[4]; 
ULONG cFlags;
HRESULT hr = PropVariantToBooleanVector(propvar, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

if (SUCCEEDED(hr))
{
     if (cFlags == ARRAYSIZE(rgFlags))
     {
         // The application received 4 flags which are now stored in rgFlags.
     }
     else
     {
         // The application received cFlags flags which are now stored in the 
         // first cFlags elements of rgFlags.
     }
}

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