Freigeben über


PropVariantToInt16-Funktion (propvarutil.h)

Extrahiert einen Int16-Eigenschaftswert einer PROPVARIANT-Struktur .

Syntax

PSSTDAPI PropVariantToInt16(
  [in]  REFPROPVARIANT propvarIn,
  [out] SHORT          *piRet
);

Parameter

[in] propvarIn

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] piRet

Typ: SHORT*

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 ein PROPVARIANT einen Int16-Wert enthält. Für instance kann eine Anwendung, die Werte aus einem Eigenschaftenspeicher bezieht, dies verwenden, um den Int16-Wert für Int16-Eigenschaften sicher zu extrahieren.

Wenn die Propvariant-Quelleden Typ VT_I2 hat, extrahiert diese Hilfsfunktion den Int16-Wert. Andernfalls wird versucht, den Wert in der PROPVARIANT-Struktur in einen Int16-Wert zu konvertieren. Wenn eine Konvertierung nicht möglich ist, gibt PropVariantToInt16 einen Fehlercode zurück und legt piRet 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 PropVariantToInt16 verwendet wird, um auf einen Int16-Wert in einem PROPVARIANT zuzugreifen.

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

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

if (SUCCEEDED(hr))

{

     // PKEY_Image_ResolutionUnit is expected to produce a VT_I2 or VT_EMPTY value.

     // PropVariantToInt16 will convert VT_EMPTY to 0.

     INT16 iUnit;

     hr = PropVariantToInt16(propvar, & iUnit);

     if (SUCCEEDED(hr))

     {

             // iUnit is now valid

     }

     else

     {

             // iUnit 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