Bagikan melalui


Fungsi VariantToDoubleArray (propvarutil.h)

Mengekstrak array nilai DOUBLE dari struktur VARIAN .

Sintaks

PSSTDAPI VariantToDoubleArray(
  [in]  REFVARIANT var,
  [out] DOUBLE     *prgn,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Parameter

[in] var

Jenis: REFVARIANT

Referensi ke struktur VARIAN sumber.

[out] prgn

Jenis: DOUBLE*

Penunjuk ke buffer yang berisi nilai DOUBLE crgn. Ketika fungsi ini kembali, buffer telah diinisialisasi dengan *elemen pcElemDOUBLE yang diekstrak dari struktur VARIAN sumber.

[in] crgn

Jenis: ULONG

Jumlah elemen dalam buffer yang diacu oleh prgn.

[out] pcElem

Jenis: ULONG*

Ketika fungsi ini kembali, berisi jumlah elemen DOUBLE yang diekstrak dari struktur VARIAN sumber.

Nilai kembali

Jenis: HRESULT

Mengembalikan S_OK jika berhasil, atau nilai kesalahan jika tidak, termasuk yang berikut ini:

Menampilkan kode Deskripsi
TYPE_E_BUFFERTOOSMALL
VARIAN sumber berisi lebih dari nilai crgn.
E_INVALIDARG
VARIAN bukan tipe yang sesuai.

Keterangan

Fungsi pembantu ini digunakan ketika aplikasi panggilan mengharapkan VARIAN untuk menahan array yang terdiri dari sejumlah nilai DOUBLE tetap.

Jika VARIAN sumber memiliki jenis VT_ARRAY | VT_DOUBLE, fungsi ini mengekstrak hingga nilai crgnDOUBLE dan menempatkannya ke dalam buffer yang diarahkan oleh prgn.

Jika VARIAN 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 VariantToDoubleArray untuk mengakses array DOUBLE yang disimpan dalam VARIAN.

// VARIANT var;
// Assume variable var is initialized and valid.
DOUBLE rgDoubles[4]; // The application expects var to hold 4 DOUBLEs in an array.
ULONG cDoubles;

HRESULT hr = VariantToDoubleArray(var, rgDoubles, ARRAYSIZE(rgDoubles), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgDoubles))
    {
        // The application got 4 DOUBLEs which are now stored in rgDoubles.
    }
    else
    {
        // The application got *pcElem DOUBLEs which are stored in the first 
        // *pcElem elements of rgDoubles.
    }
}

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

InitVariantFromDoubleArray

PropVariantToDoubleVector

VarianGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc