Bagikan melalui


Fungsi VariantToBuffer (propvarutil.h)

Mengekstrak konten buffer yang disimpan dalam struktur VARIAN jenis VT_ARRRAY | VT_UI1.

Sintaks

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

Parameter

[in] varIn

Jenis: REFVARIANT

Referensi ke struktur VARIAN sumber.

[out] pv

Jenis: VOID*

Penunjuk ke buffer byte cb panjang. Ketika fungsi ini kembali, berisi byte cb pertama dari nilai buffer yang diekstrak.

[in] cb

Jenis: UINT

Ukuran buffer pv , dalam byte. Buffer harus berukuran sama dengan data yang akan diekstraksi, atau lebih kecil.

Nilai kembali

Jenis: HRESULT

Mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK
Data berhasil diekstrak.
E_INVALIDARG
VARIAN tidak berjenis VT_ARRRAY | VT_UI1.
E_FAIL
Nilai buffer VARIAN memiliki kurang dari byte cb .

Keterangan

Fungsi ini digunakan ketika aplikasi panggilan mengharapkan VARIAN untuk menyimpan nilai buffer. Aplikasi panggilan harus memeriksa bahwa nilai memiliki panjang yang diharapkan sebelum memanggil fungsi ini.

Jika VARIAN sumber memiliki jenis VT_ARRAY | VT_UI1, fungsi ini mengekstrak byte cb pertama dari struktur dan menempatkannya di buffer yang diacu oleh pv.

Jika nilai yang disimpan memiliki kurang dari byte cb , maka VariantToBuffer gagal dan buffer tidak dimodifikasi.

Jika nilai memiliki lebih dari cb byte, maka VariantToBuffer berhasil dan memotong nilai.

Contoh

Contoh berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan VariantToBuffer untuk mengakses struktur yang telah disimpan dalam VARIAN.

// 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.
    }
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP dengan SP2, Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 dengan SP1 [hanya aplikasi desktop]
Target Platform Windows
Header propvarutil.h
Pustaka Propsys.lib
DLL Propsys.dll (versi 6.0 atau yang lebih baru)
Redistribusi Windows Desktop Search (WDS) 3.0

Lihat juga

InitVariantFromBuffer

PropVariantToBuffer