Freigeben über


PropVariantToUInt16-Funktion (propvarutil.h)

Extrahiert einen Unsigned Short-Wert aus einer PROPVARIANT-Struktur . Wenn kein Wert extrahiert werden kann, wird ein Standardwert zugewiesen.

Syntax

PSSTDAPI PropVariantToUInt16(
  [in]  REFPROPVARIANT propvarIn,
  [out] USHORT         *puiRet
);

Parameter

[in] propvarIn

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] puiRet

Typ: USHORT*

Wenn diese Funktion zurückgibt, enthält den extrahierten Eigenschaftswert, sofern vorhanden; andernfalls 0.

Rückgabewert

Typ: HRESULT

Wenn diese Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Diese Hilfsfunktion wird an Stellen verwendet, an denen die aufrufende Anwendung erwartet, dass eine PROPVARIANT einen unsignierten kurzen Wert enthält. Für instance kann eine Anwendung, die Werte aus einem Eigenschaftenspeicher bezieht, dies verwenden, um den unsignierten Kurzwert für UInt16-Eigenschaften sicher zu extrahieren.

Wenn die Propvariant-Quelleden Typ VT_UI2 hat, extrahiert diese Hilfsfunktion den unsignierten Kurzwert . Andernfalls wird versucht, den Wert in der PROPVARIANT-Struktur in ein USHORT zu konvertieren. Wenn eine Konvertierung nicht möglich ist, gibt PropVariantToUInt16 einen Fehlercode zurück und legt puiRet auf 0 fest. Eine Liste möglicher Konvertierungen finden Sie unter PropVariantChangeType . Beachten Sie, dass VT_EMPTY erfolgreich in 0 konvertiert wurde.

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie PropVariantToUInt16 verwendet wird, um auf einen nicht signierten short-Wert in einer PROPVARIANT-Datei zuzugreifen.

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_FlagColor, &propvar);

if (SUCCEEDED(hr))

{

     // PKEY_FlagColor is expected to produce a VT_UI2 or VT_EMPTY value.

     // PropVariantToUInt16 will convert VT_EMPTY to 0.

     USHORT uColor;

     hr = PropVariantToUInt16(propvar, & uColor);

     if (SUCCEEDED(hr))

     {

             // uColor is now valid

     }

     else

     {

             // uColor is always 0

     }

     PropVariantClear(&propvar);

}

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

InitPropVariantFromUInt16

PropVariantChangeType

PropVariantToUInt16Vector

VariantToUInt16