Freigeben über


PropVariantToDouble-Funktion (propvarutil.h)

Extrahiert den Doppelten Wert aus einer PROPVARIANT-Struktur .

Syntax

PSSTDAPI PropVariantToDouble(
  [in]  REFPROPVARIANT propvarIn,
  [out] DOUBLE         *pdblRet
);

Parameter

[in] propvarIn

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] pdblRet

Typ: DOUBLE*

Wenn diese Funktion zurückgibt, enthält den extrahierten Eigenschaftswert, sofern vorhanden; andernfalls enthält 0.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 einzelnen doppelten Gleitkommawert enthält. Für instance kann eine Anwendung, die Werte aus einem Eigenschaftenspeicher bezieht, dies verwenden, um einen Double-Wert für Double-Eigenschaften sicher zu extrahieren.

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

Beispiele

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

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Image_HorizontalResolution, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_Image_HorizontalResolution is expected to produce a VT_R8 or VT_EMPTY value.
     // PropVariantToDouble will successfully convert VT_EMPTY to a 0.0.
     DOUBLE dblHorzResolution;
     hr = PropVariantToDouble(propvar, &dblHorzResolution);
     if (SUCCEEDED(hr))
     {
        // dblHorzResolution is now valid
     }
     else
     {
        // dblHorzResolution contains 0.0
     }
     PropVariantClear(&propvar);
}

Anforderungen

   
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

InitPropVariantFromDouble

PropVariantGetDoubleElem

PropVariantToDoubleWithDefault

VariantToDouble