Función PropVariantGetStringElem (propvarutil.h)
Extrae un único elemento de cadena Unicode de una estructura PROPVARIANT de tipo VT_LPWSTR, VT_BSTR, VT_VECTOR | VT_LPWSTR, VT_VECTOR | VT_BSTR o VT_ARRAY | VT_BSTR.
Sintaxis
PSSTDAPI PropVariantGetStringElem(
[in] REFPROPVARIANT propvar,
[in] ULONG iElem,
[out] PWSTR *ppszVal
);
Parámetros
[in] propvar
Tipo: REFPROPVARIANT
Referencia a una estructura PROPVARIANT de origen.
[in] iElem
Tipo: ULONG
Índice de vector o matriz; de lo contrario, iElem debe ser 0.
[out] ppszVal
Tipo: PWSTR*
Cuando se devuelve esta función, contiene el valor de cadena extraído. La aplicación que realiza la llamada es responsable de liberar esta cadena llamando a CoTaskMemFree cuando ya no es necesario.
Valor devuelto
Tipo: HRESULT
Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Esta función auxiliar funciona para las estructuras PROPVARIANT de los siguientes tipos:
- VT_LPWSTR
- VT_BSTR
- VT_VECTOR | VT_LPWSTR
- VT_VECTOR | VT_BSTR
- VT_ARRAY | VT_BSTR
Si un elemento BSTR tiene un puntero NULL , esta función asigna una cadena vacía.
Ejemplos
En el ejemplo de código siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PropVariantGetStringElem con una instrucción de iteración para tener acceso a los valores de un 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);
}
}
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 con SP1 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | propvarutil.h |
Library | Propsys.lib |
Archivo DLL | Propsys.dll (versión 6.0 o posterior) |
Redistribuible | Windows Desktop Search (WDS) 3.0 |