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
如果 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 |