Compartilhar via


Função PropVariantToUInt64 (propvarutil.h)

Extrai um valor UInt64 de uma estrutura PROPVARIANT . Se nenhum valor puder ser extraído, um valor padrão será atribuído.

Sintaxe

PSSTDAPI PropVariantToUInt64(
  [in]  REFPROPVARIANT propvarIn,
  [out] ULONGLONG      *pullRet
);

Parâmetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[out] pullRet

Tipo: ULONGLONG*

Quando essa função retorna, contém o valor da propriedade extraída se houver um; caso contrário, 0.

Valor retornado

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 é usada em locais em que o aplicativo de chamada espera que um PROPVARIANT mantenha um valor ULONGLONG . Por exemplo, um aplicativo que obtém valores de um repositório de propriedades pode usá-lo para extrair com segurança o valor ULONGLONG para propriedades UInt64 .

Se o PROPVARIANT de origem tiver o tipo VT_UI8, essa função auxiliar extrairá o valor ULONGLONG . Caso contrário, ele tentará converter o valor na estrutura PROPVARIANT em um ULONGLONG. Se uma conversão não for possível, PropVariantToUInt64 retornará um código de falha e definirá pullRet como 0. Consulte PropVariantChangeType para obter uma lista de conversões possíveis. Observe que VT_EMPTY é convertido com êxito em 0.

Exemplos

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

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_Size, &propvar);

if (SUCCEEDED(hr))

{

     // PKEY_Size is expected to produce a VT_UI8 or VT_EMPTY value.

     // PropVariantToUInt64 will convert VT_EMPTY to 0.

     ULONGLONG ullSize;

     hr = PropVariantToUInt64(propvar, &ullSize);

     if (SUCCEEDED(hr))

     {

             // ullSize is now valid

     }

     else

     {

             // ullSize is always 0

     }

     PropVariantClear(&propvar);

}

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

InitPropVariantFromUInt64

PropVariantChangeType

PropVariantToUInt64Vector

VariantToUInt64