Fungsi PropVariantToBuffer (propvarutil.h)
Mengekstrak nilai buffer dari struktur tipe PROPVARIANT VT_VECTOR | VT_UI1 atau VT_ARRRAY | VT_UI1.
Sintaks
PSSTDAPI PropVariantToBuffer(
[in] REFPROPVARIANT propvar,
[out] void *pv,
[in] UINT cb
);
Parameter
[in] propvar
Jenis: REFPROPVARIANT
Struktur PROPVARIANT 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
Panjang buffer, dalam byte.
Nilai kembali
Jenis: HRESULT
Fungsi ini dapat mengembalikan salah satu nilai ini.
Menampilkan kode | Deskripsi |
---|---|
|
Jika berhasil, atau nilai kesalahan sebaliknya. |
|
PROPVARIANT adalah jenis yang salah. |
|
NilaiPROPVARIANT memiliki kurang dari byte cb . |
Keterangan
Fungsi ini digunakan di tempat-tempat di mana aplikasi panggilan mengharapkanPROPVARIANT untuk menyimpan nilai buffer. Aplikasi panggilan harus memeriksa bahwa nilai memiliki panjang yang diharapkan sebelum memanggil fungsi ini.
Jika PROPVARIANT sumber memiliki jenis VT_VECTOR | VT_UI1 atau VT_ARRAY | VT_UI1, fungsi ini mengekstrak byte cb pertama dari nilai dan menempatkannya di buffer yang diacu oleh pv. Jika nilai memiliki kurang dari byte cb , maka PropVariantToBuffer gagal dan buffer tidak dimodifikasi. Jika nilai memiliki lebih dari cb byte, maka PropVariantToBuffer berhasil dan memotong nilai.
Contoh
Contoh berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan PropVariantToBuffer untuk mengakses struktur yang telah disimpan dalam PROPVARIANT".
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_FindData, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_FindData is expected to produce a VT_VECTOR | VT_UI1 with sizeof(WIN32_FIND_DATAW) bytes
// We need to verify that the value length is acceptable before calling PropVariantToBuffer
hr = E_UNEXPECTED;
if (PropVariantGetElementCount(propvar) == sizeof(WIN32_FIND_DATAW))
{
WIN32_FIND_DATAW wfd;
hr = PropVariantToBuffer(propvar, &wfd, sizeof(wfd));
if (SUCCEEDED(hr))
{
// wfd is now initialized
}
}
PropVariantClear(&propvar);
}
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk