Bagikan melalui


Fungsi PropVariantGetStringElem (propvarutil.h)

Mengekstrak elemen string Unicode tunggal dari struktur tipe proPVARIANT VT_LPWSTR, VT_BSTR, VT_VECTOR | VT_LPWSTR, VT_VECTOR | VT_BSTR, atau VT_ARRAY | VT_BSTR.

Sintaks

PSSTDAPI PropVariantGetStringElem(
  [in]  REFPROPVARIANT propvar,
  [in]  ULONG          iElem,
  [out] PWSTR          *ppszVal
);

Parameter

[in] propvar

Jenis: REFPROPVARIANT

Referensi ke struktur PROPVARIANT sumber.

[in] iElem

Jenis: ULONG

Indeks vektor atau array; jika tidak, iElem harus 0.

[out] ppszVal

Jenis: PWSTR*

Ketika fungsi ini kembali, berisi nilai string yang diekstrak. Aplikasi panggilan bertanggung jawab untuk membebaskan string ini dengan memanggil CoTaskMemFree ketika tidak lagi diperlukan.

Nilai kembali

Jenis: HRESULT

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Fungsi pembantu ini berfungsi untuk struktur PROPVARIANT dari jenis berikut:

  • VT_LPWSTR
  • VT_BSTR
  • VT_VECTOR | VT_LPWSTR
  • VT_VECTOR | VT_BSTR
  • VT_ARRAY | VT_BSTR
Jika PROPVARIANT sumber memiliki jenis VT_LPWSTR atau VT_BSTR, iElem harus 0. Jika tidak , iElem harus kurang dari jumlah elemen dalam vektor atau array. Anda dapat menggunakan PropVariantGetElementCount untuk mendapatkan jumlah elemen dalam vektor atau array.

Jika elemen BSTR memiliki penunjuk NULL , fungsi ini mengalokasikan string kosong.

Contoh

Contoh kode berikut, untuk disertakan sebagai bagian dari program yang lebih besar, menunjukkan cara menggunakan PropVariantGetStringElem dengan pernyataan iterasi untuk mengakses nilai dalam PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid

if ((propvar.vt & VT_TYPEMASK) == VT_LPWSTR || (propvar.vt & VT_TYPEMASK) == VT_BSTR)
{
    UINT cElem = PropVariantGetElementCount(propvar);
    HRESULT hr = <mark type="const">S_OK</mark>;

    for (UINT iElem = 0; SUCCEEDED(hr) && iElem < cElem; iElem ++)
    {
        PWSTR pszValue;
        hr = PropVariantGetStringElem(propvar, iElem, &pszValue);

        if (SUCCEEDED(hr))
        {
            // pszValue is valid now
            CoTaskMemFree(pszValue);
        }
    }
}

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

PropVariantGetElem