Freigeben über


VariantToBuffer-Funktion (propvarutil.h)

Extrahiert den Inhalt eines Puffers, der in einer VARIANT-Struktur vom Typ VT_ARRRAY gespeichert ist | VT_UI1.

Syntax

PSSTDAPI VariantToBuffer(
  [in]  REFVARIANT varIn,
  [out] void       *pv,
  [in]  UINT       cb
);

Parameter

[in] varIn

Typ: REFVARIANT

Verweis auf eine VARIANT-Quellstruktur .

[out] pv

Typ: VOID*

Zeiger auf einen Puffer mit der Länge cb Bytes. Wenn diese Funktion zurückgibt, enthält die ersten cb Bytes des extrahierten Pufferwerts.

[in] cb

Typ: UINT

Die Größe des pv-Puffers in Bytes. Der Puffer sollte die gleiche Größe wie die zu extrahierenden Daten aufweisen oder kleiner sein.

Rückgabewert

Typ: HRESULT

Gibt einen der folgenden Werte zurück:

Rückgabecode BESCHREIBUNG
S_OK
Daten wurden erfolgreich extrahiert.
E_INVALIDARG
Der VARIANT war nicht vom Typ VT_ARRRAY | VT_UI1.
E_FAIL
Der VARIANT-Pufferwert hatte weniger als cb Bytes.

Hinweise

Diese Funktion wird verwendet, wenn die aufrufende Anwendung erwartet, dass ein VARIANT einen Pufferwert enthält. Die aufrufende Anwendung sollte überprüfen, ob der Wert die erwartete Länge aufweist, bevor diese Funktion aufgerufen wird.

Wenn die Variant-Quelle den Typ VT_ARRAY | VT_UI1 extrahiert diese Funktion die ersten cb-Bytes aus der Struktur und platziert sie im Puffer, auf den von pv verwiesen wird.

Wenn der gespeicherte Wert weniger als cb Bytes aufweist, schlägt VariantToBuffer fehl, und der Puffer wird nicht geändert.

Wenn der Wert mehr als cb Bytes aufweist, ist VariantToBuffer erfolgreich und schneidet den Wert ab.

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie VariantToBuffer für den Zugriff auf eine Struktur verwendet wird, die in einer VARIANT gespeichert wurde.

// VARIANT var;
// Assume variable var is initialized and valid. 
// The application expects var to hold a WIN32_FIND_DATAW structure 
// with sizeof(WIN32_FIND_DATAW) bytes.

HRESULT hr = E_UNEXPECTED;

// Verify that the value length is acceptable before you call VariantToBuffer.
if (VariantGetElementCount(var) == sizeof(WIN32_FIND_DATAW))
{
    WIN32_FIND_DATAW wfd;

    hr = VariantToBuffer(var, &wfd, sizeof(wfd));

    if (SUCCEEDED(hr))
    {
        // wfd is now initialized.
    }
}

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

InitVariantFromBuffer

PropVariantToBuffer