Compartilhar via


Função PropVariantToUInt32Vector (propvarutil.h)

Extrai dados de uma estrutura PROPVARIANT em um vetor ULONG .

Sintaxe

PSSTDAPI PropVariantToUInt32Vector(
  [in]  REFPROPVARIANT propvar,
  [out] ULONG          *prgn,
  [in]  ULONG          crgn,
  [out] ULONG          *pcElem
);

Parâmetros

[in] propvar

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[out] prgn

Tipo: ULONG*

Aponta para um buffer que contém valores ULONGcrgn. Quando essa função retorna, o buffer foi inicializado com elementos ULONG pcElem extraídos do PROPVARIANT de origem.

[in] crgn

Tipo: ULONG

Tamanho do buffer apontado por prgn, em elementos.

[out] pcElem

Tipo: ULONG*

Quando essa função retorna, contém a contagem de valores ULONG extraídos da estrutura PROPVARIANT de origem.

Retornar valor

Tipo: HRESULT

Essa função pode retornar um desses valores.

Código de retorno Descrição
S_OK
Retorna S_OK se tiver êxito ou um valor de erro, caso contrário.
TYPE_E_BUFFERTOOSMALL
O PROPVARIANT de origem continha mais do que valores crgn . O buffer apontado por prgn é muito pequeno.
E_INVALIDARG
O PROPVARIANT não era do tipo apropriado.

Comentários

Essa função auxiliar é usada em locais em que o aplicativo de chamada espera que um PROPVARIANT mantenha um vetor de valores ULONG com um número fixo de elementos.

Se o PROPVARIANT de origem tiver o tipo VT_VECTOR | VT_UI4 ou VT_ARRAY | VT_UI4, essa função auxiliar extrairá até valores ULONGcrgn e os colocará no buffer apontado por prgn. Se o PROPVARIANT contiver mais elementos do que caberá no buffer prgn , essa função retornará um erro e definirá pcElem como 0.

Exemplos

O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar PropVariantToUInt32Vector para acessar um valor de vetor ULONG em um PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
ULONG rgLongs[4]; // The application is expecting propvar to hold 4 ULONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 ULONGs which are now stored in rgLongs
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgLongs
     }
}

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

InitPropVariantFromUInt32Vector

PropVariantGetUInt32Elem

PropVariantToUInt32

PropVariantToUInt32VectorAlloc

VariantToUInt32Array