Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengekstrak data dari struktur PROPVARIANT ke vektor ganda yang baru dialokasikan.
Sintaks
PSSTDAPI PropVariantToDoubleVectorAlloc(
[in] REFPROPVARIANT propvar,
[out] DOUBLE **pprgn,
[out] ULONG *pcElem
);
Parameter
[in] propvar
Jenis: REFPROPVARIANT
Referensi ke struktur PROPVARIANT sumber.
[out] pprgn
Jenis: DOUBLE**
Ketika fungsi ini kembali, berisi penunjuk ke vektor nilai ganda yang diekstrak dari struktur PROPVARIANT sumber.
[out] pcElem
Jenis: ULONG*
Ketika fungsi ini kembali, berisi jumlah elemen ganda yang diekstrak dari struktur PROPVARIANT sumber.
Menampilkan nilai
Jenis: HRESULT
Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Fungsi pembantu ini digunakan di tempat-tempat di mana aplikasi panggilan mengharapkan PROPVARIANT untuk menyimpan nilai vektor ganda.
Jika PROPVARIANT sumber memiliki jenis VT_VECTOR | VT_R8 atau VT_ARRAY | VT_R8, fungsi ini mengekstrak vektor nilai ganda ke dalam vektor nilai DOUBLE yang baru dialokasikan. Aplikasi panggilan bertanggung jawab untuk menggunakan CoTaskMemFree untuk merilis vektor yang ditunjukkan oleh pprgn ketika tidak lagi diperlukan.
Contoh
Contoh berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan PropVariantToDoubleVector untuk mengakses nilai vektor ganda dalam PROPVARIANT.
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_GPS_DestLongitude, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_GPS_DestLongitude is expected to produce a VT_VECTOR | VT_R8 with three values, or VT_EMPTY
// PropVariantToDoubleVectorAlloc will return an error for VT_EMPTY
DOUBLE *rgLongitude;
ULONG cElem;
hr = PropVariantToDoubleVectorAlloc(propvar, &rgLongitude, &cElem);
if (SUCCEEDED(hr))
{
if (cElem == 3)
{
// rgLongitude contains 3 doubles representing the degrees, minutes, and seconds of longitude
}
CoTaskMemFree(rgLongitude);
}
else
{
// propvar either is VT_EMPTY, or contains something other than a vector of doubles
}
PropVariantClear(&propvar);
}
Persyaratan
| 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 |