PropVariantToBoolean-Funktion (propvarutil.h)

Extrahiert einen booleschen Eigenschaftswert einer PROPVARIANT-Struktur . Wenn kein Wert extrahiert werden kann, wird ein Standardwert zugewiesen.

Syntax

PSSTDAPI PropVariantToBoolean(
  [in]  REFPROPVARIANT propvarIn,
  [out] BOOL           *pfRet
);

Parameter

[in] propvarIn

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] pfRet

Typ: BOOL*

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

Rückgabewert

Typ: HRESULT

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

Hinweise

Diese Hilfsfunktion wird an Stellen verwendet, an denen die aufrufende Anwendung erwartet, dass eine PROPVARIANT einen booleschen Wert enthält. Bei instance kann eine Anwendung, die Werte aus einem Eigenschaftenspeicher erhält, dies verwenden, um den booleschen Wert für boolesche Eigenschaften sicher zu extrahieren.

Wenn der Propvariant-QuelltypVT_BOOL hat, extrahiert diese Hilfsfunktion den booleschen Wert. Andernfalls wird versucht, den Wert in der PROPVARIANT-Struktur in einen booleschen Wert zu konvertieren. Wenn eine Konvertierung nicht möglich ist, gibt PropVariantToBoolean einen Fehlercode zurück und legt pfRet auf FALSE fest. Eine Liste der möglichen Konvertierungen finden Sie unter PropVariantChangeType . Beachten Sie, dass VT_EMPTY erfolgreich in FALSE konvertiert wurde.

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie PropVariantToBoolean auf einen booleschen Wert in einem PROPVARIANT zugreifen kann.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_IsShared, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_IsShared is expected to produce a VT_BOOL or VT_EMPTY value.
     // PropVariantToBoolean will convert VT_EMPTY to FALSE.
     BOOL fShared;
     
     hr = PropVariantToBoolean(propvar, &fShared);
     if (SUCCEEDED(hr))
     {
         // fShared is now valid
     }
     else
     {
         // fShared is always FALSE
     }
     
     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

InitPropVariantFromBoolean

PropVariantGetBooleanElem

PropVariantToBooleanWithDefault

VariantToBoolean