Funzione PropVariantToUInt32Vector (propvarutil.h)
Estrae i dati da una struttura PROPVARIANT in un vettore ULONG .
Sintassi
PSSTDAPI PropVariantToUInt32Vector(
[in] REFPROPVARIANT propvar,
[out] ULONG *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
Parametri
[in] propvar
Tipo: REFPROPVARIANT
Riferimento a una struttura PROPVARIANT di origine.
[out] prgn
Tipo: ULONG*
Punta a un buffer contenente valori ULONGcrgn. Quando questa funzione restituisce, il buffer è stato inizializzato con elementi pcElemULONG estratti dall'origine PROPVARIANT.
[in] crgn
Tipo: ULONG
Dimensioni del buffer puntate da prgn, negli elementi.
[out] pcElem
Tipo: ULONG*
Quando questa funzione restituisce, contiene il conteggio dei valori ULONG estratti dalla struttura PROPVARIANT di origine.
Valore restituito
Tipo: HRESULT
Questa funzione può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Restituisce S_OK se ha esito positivo o un valore di errore in caso contrario. |
|
L'origine PROPVARIANT contiene più dei valori crgn . Il buffer puntato da prgn è troppo piccolo. |
|
PropVARIANT non era del tipo appropriato. |
Commenti
Questa funzione helper viene usata nelle posizioni in cui l'applicazione chiamante prevede che un PROPVARIANT contenga un vettore di valori ULONG con un numero fisso di elementi.
Se l'origine PROPVARIANTha tipo VT_VECTOR VT_UI4o | VT_ARRAY | VT_UI4, questa funzione helper estrae fino a valori ULONGcrgn e li inserisce nel buffer a cui punta da prgn. Se PROPVARIANT contiene più elementi che si adattano al buffer prgn , 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 PropVariantToUInt32Vector per accedere a un valore vettore ULONG in un PROPVARIANT.
// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
ULONG rgLongs[4]; // The application is expecting propvar to hold 4 ULONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
if (cElems == ARRAYSIZE(rgLongs))
{
// The application got 4 ULONGs which are now stored in rgLongs
}
else
{
// The application got cElems which are stored in the first cElems elements of rgLongs
}
}
Requisiti
Requisito | Valore |
---|---|
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 |
Vedi anche
InitPropVariantFromUInt32Vector