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 |
---|---|
|
Daten wurden erfolgreich extrahiert. |
|
Der VARIANT war nicht vom Typ VT_ARRRAY | VT_UI1. |
|
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 |