Funzione VariantToBuffer (propvarutil.h)
Estrae il contenuto di un buffer archiviato in una struttura VARIANT di tipo VT_ARRRAY | VT_UI1.
Sintassi
PSSTDAPI VariantToBuffer(
[in] REFVARIANT varIn,
[out] void *pv,
[in] UINT cb
);
Parametri
[in] varIn
Tipo: REFVARIANT
Riferimento a una struttura VARIANT di origine.
[out] pv
Tipo: VOID*
Puntatore a un buffer di byte cb di lunghezza. Quando questa funzione restituisce, contiene i primi byte cb del valore del buffer estratto.
[in] cb
Tipo: UINT
Dimensioni del buffer pv , in byte. Il buffer deve essere la stessa dimensione dei dati da estrarre o di dimensioni inferiori.
Valore restituito
Tipo: HRESULT
Restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Dati estratti correttamente. |
|
VARIANT non era di tipo VT_ARRRAY | VT_UI1. |
|
Il valore del buffer VARIANT ha meno di cb byte. |
Commenti
Questa funzione viene usata quando l'applicazione chiamante prevede che un valore VARIANT contenga un valore del buffer. L'applicazione chiamante deve verificare che il valore abbia la lunghezza prevista prima di chiamare questa funzione.
Se l'origine VARIANT ha tipo VT_ARRAY | VT_UI1, questa funzione estrae i primi byte cb dalla struttura e li inserisce nel buffer a cui punta da pv.
Se il valore archiviato ha meno di cb bytes, VariantToBuffer ha esito negativo e il buffer non viene modificato.
Se il valore ha più di cb byte, VariantToBuffer riesce e tronca il valore.
Esempio
Nell'esempio seguente, da includere come parte di un programma più grande, viene illustrato come usare VariantToBuffer per accedere a una struttura archiviata in una VARIANTE.
// 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.
}
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP con SP2, Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 con SP1 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | propvarutil.h |
Libreria | Propsys.lib |
DLL | Propsys.dll (versione 6.0 o successiva) |
Componente ridistribuibile | Windows Desktop Search (WDS) 3.0 |