Compartilhar via


Função PropVariantGetStringElem (propvarutil.h)

Extrai um único elemento de cadeia de caracteres Unicode de uma estrutura PROPVARIANT do tipo VT_LPWSTR, VT_BSTR VT_VECTOR | VT_LPWSTR, VT_VECTOR | VT_BSTR ou VT_ARRAY | VT_BSTR.

Sintaxe

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

Parâmetros

[in] propvar

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[in] iElem

Tipo: ULONG

O vetor ou índice de matriz; caso contrário, iElem deve ser 0.

[out] ppszVal

Tipo: PWSTR*

Quando essa função retorna, contém o valor da cadeia de caracteres extraída. O aplicativo de chamada é responsável por liberar essa cadeia de caracteres chamando CoTaskMemFree quando ela não for mais necessária.

Retornar valor

Tipo: HRESULT

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Essa função auxiliar funciona para estruturas PROPVARIANT dos seguintes tipos:

  • VT_LPWSTR
  • VT_BSTR
  • VT_VECTOR | VT_LPWSTR
  • VT_VECTOR | VT_BSTR
  • VT_ARRAY | VT_BSTR
Se o PROPVARIANT de origem tiver tipo VT_LPWSTR ou VT_BSTR, iElem deverá ser 0. Caso contrário , iElem deve ser menor que o número de elementos no vetor ou na matriz. Você pode usar PropVariantGetElementCount para obter o número de elementos no vetor ou na matriz.

Se um elemento BSTR tiver um ponteiro NULL , essa função alocará uma cadeia de caracteres vazia.

Exemplos

O exemplo de código a seguir, a ser incluído como parte de um programa maior, demonstra como usar PropVariantGetStringElem com uma instrução de iteração para acessar os valores em um 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 Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho propvarutil.h
Biblioteca Propsys.lib
DLL Propsys.dll (versão 6.0 ou posterior)
Redistribuível Pesquisa da Área de Trabalho do Windows (WDS) 3.0

Confira também

PropVariantGetElem