Compartilhar via


Função PropVariantToBooleanVector (propvarutil.h)

Extrai um vetor booliano de uma estrutura PROPVARIANT .

Sintaxe

PSSTDAPI PropVariantToBooleanVector(
  [in]  REFPROPVARIANT propvar,
  [out] BOOL           *prgf,
  [in]  ULONG          crgf,
  [out] ULONG          *pcElem
);

Parâmetros

[in] propvar

Tipo: REFPROPVARIANT

Referência a uma estrutura PROPVARIANT de origem .

[out] prgf

Tipo: BOOL*

Aponta para um buffer que contém valores BOOL crgf. Quando essa função retorna, o buffer foi inicializado com elementos boolianos pcElem extraídos da estrutura PROPVARIANT de origem.

[in] crgf

Tipo: ULONG

Número de elementos no buffer apontado por prgf.

[out] pcElem

Tipo: ULONG*

Quando essa função retorna, contém a contagem de elementos boolianos 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 crgf . O buffer apontado por prgf.
E_INVALIDARG
O PROPVARIANT não era do tipo apropriado.

Comentários

Essa função auxiliar é usada quando o aplicativo de chamada espera que um PROPVARIANT mantenha um valor de vetor booliano com um número fixo de elementos.

Se o PROPVARIANT de origem tiver o tipo VT_VECTOR | VT_BOOL ou VT_ARRAY | VT_BOOL, essa função auxiliar extrai até valores boolianos crgf e os coloca no buffer apontado por prgf. Se o PROPVARIANT contiver mais elementos do que caberá no buffer prgf , 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 PropVariantToBooleanVector para acessar um vetor booliano armazenado em um PROPVARIANT.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid.

// The application is expecting the propvar variable to hold 4 Booleans
// in a vector.
BOOL rgFlags[4]; 
ULONG cFlags;
HRESULT hr = PropVariantToBooleanVector(propvar, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

if (SUCCEEDED(hr))
{
     if (cFlags == ARRAYSIZE(rgFlags))
     {
         // The application received 4 flags which are now stored in rgFlags.
     }
     else
     {
         // The application received cFlags flags which are now stored in the 
         // first cFlags elements of rgFlags.
     }
}

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