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 |
---|---|
|
Restituisce S_OK in caso di esito positivo o un valore di errore in caso contrario. |
|
L'origine PROPVARIANT contiene più valori crgf . Buffer a cui punta prgf. |
|
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 |