Condividi tramite


Funzione PropVariantToBooleanVector (propvarutil.h)

Estrae un vettore booleano da una struttura PROPVARIANT .

Sintassi

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

Parametri

[in] propvar

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[out] prgf

Tipo: BOOL*

Punta a un buffer che contiene valori BOOL crgf. Quando questa funzione viene restituita, il buffer è stato inizializzato con gli elementi booleani pcElem estratti dalla struttura PROPVARIANT di origine.

[in] crgf

Tipo: ULONG

Numero di elementi nel buffer a cui punta prgf.

[out] pcElem

Tipo: ULONG*

Quando termina, questa funzione contiene il conteggio degli elementi booleani estratti dalla struttura PROPVARIANT di origine.

Valore restituito

Tipo: HRESULT

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
S_OK
Restituisce S_OK in caso di esito positivo o un valore di errore in caso contrario.
TYPE_E_BUFFERTOOSMALL
L'origine PROPVARIANT contiene più valori crgf . Buffer a cui punta prgf.
E_INVALIDARG
PropVARIANT non era del tipo appropriato.

Commenti

Questa funzione helper viene usata quando l'applicazione chiamante prevede che un PROPVARIANT contenga un valore vettore booleano con un numero fisso di elementi.

Se l'origine PROPVARIANT ha tipo VT_VECTOR | VT_BOOL o VT_ARRAY | VT_BOOL, questa funzione helper estrae fino a valori booleani crgf e li inserisce nel buffer a cui punta prgf. Se PROPVARIANT contiene più elementi di quanto si inserisca nel buffer prgf , questa funzione restituisce un errore e imposta pcElem su 0.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PropVariantToBooleanVector per accedere a un vettore booleano archiviato in 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.
     }
}

Requisiti

   
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propvarutil.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0