Compartilhar via


Função PropVariantToInt32Vector (propvarutil.h)

Extrai um vetor de valores longos de uma estrutura PROPVARIANT .

Sintaxe

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

Parâmetros

[in] propvar

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[out] prgn

Tipo: LONG*

Aponta para um buffer que contém valores LONGcrgn. Quando essa função retorna, o buffer foi inicializado com elementoslong 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 elementos LONG 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.
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 LONG com um número fixo de elementos.

Se o PROPVARIANT de origem tiver o tipo VT_VECTOR | VT_I4 ou VT_ARRAY | VT_I4, essa função auxiliar extrairá até valores LONGcrgn 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 PropVariantToInt32Vector para acessar um valor de vetor Int32 em um PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
LONG rgLongs[4]; // The application is expecting propvar to hold 4 LONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 LONGs 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

InitPropVariantFromInt32Vector

PropVariantGetInt32Elem

PropVariantToInt32

PropVariantToInt32VectorAlloc

VariantToInt32Array