Compartilhar via


Função PropVariantToInt64Vector (propvarutil.h)

Extrai dados de uma estrutura PROPVARIANT em um vetor Int64 .

Sintaxe

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

Parâmetros

[in] propvar

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[out] prgn

Tipo: LONGLONG*

Aponta para um buffer que contém valores LONGLONGcrgn. Quando essa função retorna, o buffer foi inicializado com elementos longlong 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 LONGLONG extraídos da estrutura PROPVARIANT de origem.

Valor retornado

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 onde o aplicativo de chamada espera que um PROPVARIANT mantenha um vetor de valores LONGLONG com um número fixo de elementos.

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

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

Requisitos

   
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

InitPropVariantFromInt64Vector

PropVariantGetInt64Elem

PropVariantToInt64

PropVariantToInt64VectorAlloc

VariantToInt64Array