Bagikan melalui


Fungsi VariantToBooleanArray (propvarutil.h)

Mengekstrak array nilai Boolean dari struktur VARIAN .

Sintaks

PSSTDAPI VariantToBooleanArray(
  [in]  REFVARIANT var,
  [out] BOOL       *prgf,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Parameter

[in] var

Jenis: REFVARIANT

Referensi ke struktur VARIAN sumber.

[out] prgf

Jenis: BOOL*

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

[in] crgn

Jenis: ULONG

Jumlah elemen dalam buffer yang diacu oleh prgf.

[out] pcElem

Jenis: ULONG*

Ketika fungsi ini kembali, berisi penunjuk ke hitungan elemen BOOL yang diekstrak dari struktur VARIAN sumber.

Nilai kembali

Jenis: HRESULT

Mengembalikan S_OK jika berhasil, atau nilai kesalahan sebaliknya, 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 Boolean tetap.

Jika VARIAN sumber berjenis VT_ARRAY | VT_BOOL, fungsi ini mengekstrak hingga nilai BOOL crgn dan menempatkannya ke dalam buffer yang diarahkan oleh prgf. Jika VARIAN berisi lebih banyak elemen daripada yang akan masuk ke dalam buffer prgf , fungsi ini mengembalikan kesalahan dan mengatur *pcElem ke 0.

Contoh

Contoh berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan VariantToBooleanArray untuk mengakses array nilai BOOL yang disimpan dalam struktur VARIAN .

// VARIANT var;
// Assume variable var is initialized and valid
BOOL rgFlags[4]; // The application is expecting var to hold 4 BOOLs in an array.
ULONG cFlags;

HRESULT hr = VariantToBooleanArray(var, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgFlags))
    {
        // The application got 4 flag values which are now stored in rgFlags.
    }
    else
    {
        // The application got cFlags which are stored in the first cFlags 
        // elements of rgFlags.
    }
}

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

InitVariantFromBooleanArray

PropVariantToBooleanVector

VarianGetBooleanElem

VariantToBoolean

VariantToBooleanArrayAlloc