Condividi tramite


Funzione PropVariantToUInt64Vector (propvarutil.h)

Estrae i dati da una struttura PROPVARIANT in un vettore ULONGLONG .

Sintassi

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

Parametri

[in] propvar

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[out] prgn

Tipo: ULONGLONG*

Punta a un buffer contenente valori ULONGLONGdi crgn. Quando questa funzione restituisce, il buffer è stato inizializzato con elementi pcElemULONGLONG 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 ULONGLONG 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 se ha esito positivo o un valore di errore in caso contrario.
TYPE_E_BUFFERTOOSMALL
L'origine PROPVARIANT contiene più dei valori crgn . Buffer a cui fa riferimento prgn.
E_INVALIDARG
PropVARIANT non era del tipo appropriato.

Commenti

Questa funzione helper viene usata in posizioni in cui l'applicazione chiamante prevede che un PROPVARIANT contenga un vettore di valori ULONGLONG con un numero fisso di elementi.

Se l'origine PROPVARIANT ha tipo VT_VECTOR VT_UI8o | VT_ARRAY | VT_UI8, questa funzione helper estrae fino ai valori ULONGLONGdi crgn 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 PropVariantToUInt64Vector per accedere a un valore vettore ULONGLONG in un PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
ULONGLONG rgLongs[4]; // The application is expecting propvar to hold 4 ULONGLONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt64Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 ULONGLONGs 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

InitPropVariantFromUInt64Vector

PropVariantGetUInt64Elem

PropVariantToUInt64

PropVariantToUInt64VectorAlloc

VariantToUInt64Array