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