PropVariantGetStringElem 関数 (propvarutil.h)
VT_LPWSTR、VT_BSTR、VT_VECTOR 型の PROPVARIANT 構造体から 1 つの 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 |
Library | Propsys.lib |
[DLL] | Propsys.dll (バージョン 6.0 以降) |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |