Freigeben über


PropVariantToInt16Vector-Funktion (propvarutil.h)

Extrahiert einen Vektor von Int16-Werten aus einer PROPVARIANT-Struktur .

Syntax

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

Parameter

[in] propvar

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] prgn

Typ: SHORT*

Zeigt auf einen Puffer mit crgn SHORT-Werten. Wenn diese Funktion zurückgibt, wurde der Puffer mit pcElem SHORT-Elementen initialisiert, die aus der PROPVARIANT-Quellstruktur extrahiert wurden.

[in] crgn

Typ: ULONG

Größe des Puffers, auf den prgn in Elementen verweist.

[out] pcElem

Typ: ULONG*

Wenn diese Funktion zurückgibt, enthält die Anzahl der Int16-Elemente , die aus der Quellstruktur PROPVARIANT extrahiert wurden.

Rückgabewert

Typ: HRESULT

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück.
TYPE_E_BUFFERTOOSMALL
Die Propvariant-Quelle enthielt mehr als crgn-Werte . Der Puffer, auf den prgn verweist.
E_INVALIDARG
Propvariant war nicht vom entsprechenden Typ.

Hinweise

Diese Hilfsfunktion wird an Stellen verwendet, an denen die aufrufende Anwendung erwartet, dass eine PROPVARIANT einen Int16-Vektorwert mit einer festen Anzahl von Elementen enthält.

Wenn die Quelle PROPVARIANT den Typ VT_VECTOR | VT_I2 oder VT_ARRAY | VT_I2 extrahiert diese Hilfsfunktion bis zu crgn Int16-Werte und platziert sie in den Puffer, auf den prgn verweist. Wenn propvariant mehr Elemente enthält, als in den prgn-Puffer passen, gibt diese Funktion einen Fehler zurück und legt pcElem auf 0 fest.

Beispiele

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP2, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 mit SP1 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile propvarutil.h
Bibliothek Propsys.lib
DLL Propsys.dll (Version 6.0 oder höher)
Verteilbare Komponente Windows Desktop Search (WDS) 3.0

Weitere Informationen

InitPropVariantFromInt16Vector

PropVariantGetInt16Elem

PropVariantToInt16

PropVariantToInt16VectorAlloc

VariantToInt16Array