共用方式為


propVariantGetStringElem 函式 (propvarutil.h)

從類型為 VT_LPWSTR、VT_BSTR、VT_VECTOR 的 PROPVARIANT 結構擷取單一 Unicode 字串專案 |VT_LPWSTR,VT_VECTOR |VT_BSTR或VT_ARRAY |VT_BSTR。

語法

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

參數

[in] propvar

類型: REFPROPVARIANT

來源 PROPVARIANT 結構的參考。

[in] iElem

類型: ULONG

向量或陣列索引;否則, iElem 必須是 0。

[out] ppszVal

類型: PWSTR*

當此函式傳回時,會包含擷取的字串值。 呼叫應用程式負責在不再需要時呼叫 CoTaskMemFree 來釋放此字串。

傳回值

類型: HRESULT

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

此協助程式函式適用於下列類型的 PROPVARIANT 結構:

  • VT_LPWSTR
  • VT_BSTR
  • VT_VECTOR |VT_LPWSTR
  • VT_VECTOR |VT_BSTR
  • VT_ARRAY |VT_BSTR
如果來源 PROPVARIANT 的類型VT_LPWSTR或 VT_BSTR,iElem 必須是 0。 否則 ,iElem 必須小於向量或陣列中的元素數目。 您可以使用 PropVariantGetElementCount 來取得向量或陣列中的元素數目。

如果 BSTR 元素具有 NULL 指標,此函式會配置空字串。

範例

下列程式代碼範例要包含在較大的程式中,示範如何使用 PropVariantGetStringElem 搭配反覆專案語句來存取 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);
        }
    }
}

規格需求

需求
最低支援的用戶端 Windows XP 搭配 SP2、Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 SP1 [僅限傳統型應用程式]
目標平台 Windows
標頭 propvarutil.h
程式庫 Propsys.lib
Dll Propsys.dll (6.0 版或更新版本)
可轉散發套件 Windows 桌面搜尋 (WDS) 3.0

另請參閱

PropVariantGetElem