Condividi tramite


Funzione PropVariantToUInt16Vector (propvarutil.h)

Estrae i dati da una struttura PROPVARIANT in un vettore corto senza segno .

Sintassi

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

Parametri

[in] propvar

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[out] prgn

Tipo: USHORT*

Punta a un buffer contenente valori brevi senza segnocrgn. Quando questa funzione viene restituita, il buffer è stato inizializzato con elementi brevi pcElemsenza segno estratti dal PROPVARIANT di origine.

[in] crgn

Tipo: ULONG

Dimensione del buffer a cui punta prgn negli elementi .

[out] pcElem

Tipo: ULONG*

Quando termina, questa funzione contiene il numero di valori brevi senza segno 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 crgn. Buffer a cui punta 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 brevi senza segno con un numero fisso di elementi.

Se l'origine PROPVARIANT ha un tipo VT_VECTOR VT_UI2 | oVT_ARRAY VT_UI2 | , questa funzione helper estrae fino a valori brevi senzasegnocrgn e li inserisce nel buffer a cui punta prgn. Se PROPVARIANT contiene più elementi di quelli che verranno inseriti nel 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 PropVariantToUInt16Vector per accedere a un valore di vettore breve senza segno in un PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
USHORT rgShorts[4]; // The application is expecting propvar to hold 4 USHORTs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt16Vector(propvar, rgShorts, ARRAYSIZE(rgShorts), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgShorts))
     {
         // The application got 4 USHORTs which are now stored in rgShorts
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgShorts
     }
}

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

InitPropVariantFromUInt16Vector

PropVariantGetUInt16Elem

PropVariantToUInt16

PropVariantToUInt16VectorAlloc

VariantToUInt16Array