Fungsi PropVariantToInt32Vector (propvarutil.h)

Mengekstrak vektor nilai panjang dari struktur PROPVARIANT .

Sintaks

PSSTDAPI PropVariantToInt32Vector(
  [in]  REFPROPVARIANT propvar,
  [out] LONG           *prgn,
  [in]  ULONG          crgn,
  [out] ULONG          *pcElem
);

Parameter

[in] propvar

Jenis: REFPROPVARIANT

Referensi ke struktur PROPVARIANT sumber.

[out] prgn

Jenis: LONG*

Menunjuk ke buffer yang berisi nilai crgnLONG . Ketika fungsi ini kembali, buffer telah diinisialisasi dengan elemen pcElemLONG yang diekstrak dari SUMBER PROPVARIANT.

[in] crgn

Jenis: ULONG

Ukuran buffer yang diacu oleh prgn dalam elemen.

[out] pcElem

Jenis: ULONG*

Ketika fungsi ini kembali, berisi jumlah elemen LONG yang diekstrak dari struktur PROPVARIANT sumber.

Nilai kembali

Jenis: HRESULT

Fungsi ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK
Mengembalikan S_OK jika berhasil, atau nilai kesalahan sebaliknya.
TYPE_E_BUFFERTOOSMALL
PROPVARIANT sumber berisi lebih dari nilai crgn. Buffer diacu oleh prgn.
E_INVALIDARG
PROPVARIANT bukan tipe yang sesuai.

Keterangan

Fungsi pembantu ini digunakan di tempat-tempat di mana aplikasi panggilan mengharapkan PROPVARIANT untuk menyimpan vektor nilai LONG dengan jumlah elemen tetap.

Jika sumber PROPVARIANT memiliki jenis VT_VECTOR | VT_I4 atau VT_ARRAY | VT_I4, fungsi pembantu ini mengekstrak hingga nilai crgnLONG dan menempatkannya ke dalam buffer yang ditunjukkan oleh prgn. Jika PROPVARIANT berisi lebih banyak elemen daripada yang akan masuk ke dalam buffer prgn , fungsi ini mengembalikan kesalahan dan mengatur pcElem ke 0.

Contoh

Contoh berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan PropVariantToInt32Vector untuk mengakses nilai vektor Int32 dalam PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
LONG rgLongs[4]; // The application is expecting propvar to hold 4 LONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 LONGs which are now stored in rgLongs
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgLongs
     }
}

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

InitPropVariantFromInt32Vector

PropVariantGetInt32Elem

PropVariantToInt32

PropVariantToInt32VectorAlloc

VariantToInt32Array