Compartir a través de


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 el PROPVARIANT de origen tiene el tipo VT_LPWSTR o VT_BSTR, iElem debe ser 0. De lo contrario , iElem debe ser menor que el número de elementos del vector o matriz. Puede usar PropVariantGetElementCount para obtener el número de elementos del vector o matriz.

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

Consulte también

PropVariantGetElem