Função PropVariantToDoubleVector (propvarutil.h)
Extrai um vetor de duplos de uma estrutura PROPVARIANT .
Sintaxe
PSSTDAPI PropVariantToDoubleVector(
[in] REFPROPVARIANT propvar,
[out] DOUBLE *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
Parâmetros
[in] propvar
Tipo: REFPROPVARIANT
Referência a uma estrutura PROPVARIANT de origem .
[out] prgn
Tipo: DOUBLE*
Aponta para um buffer que contém valores DOUBLE crgn . Quando essa função retorna, o buffer foi inicializado com elementos duplos pcElem extraídos da estrutura PROPVARIANT de origem.
[in] crgn
Tipo: ULONG
Tamanho em elementos do buffer apontado por prgn.
[out] pcElem
Tipo: ULONG*
Quando essa função retorna, contém a contagem de elementos duplos extraídos da estrutura PROPVARIANT de origem.
Retornar valor
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 onde o aplicativo de chamada espera que um PROPVARIANT mantenha um valor de vetor duplo com um número fixo de elementos.
Se o PROPVARIANT de origem tiver o tipo VT_VECTOR | VT_R8 ou VT_ARRAY | VT_R8, essa função auxiliar extrai até valores duplos crgn e os coloca 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
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_GPS_DestLongitude, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_GPS_DestLongitude is expected to produce a VT_VECTOR | VT_R8 with three values, or VT_EMPTY
// PropVariantToDoubleVector will return an error for VT_EMPTY
DOUBLE rgLongitude[3];
ULONG cElem;
hr = PropVariantToDoubleVector(propvar, &rgLongitude, ARRAYSIZE(rgLongitude), &cElem);
if (SUCCEEDED(hr))
{
if (cElem == ARRAYSIZE(rgLongitude))
{
// rgLongitude contains 3 doubles representing the degrees, minutes, and seconds of longitude
}
else
{
// The first cElem doubles from propvar are stored in the first 3 elements of rgLongitude
}
else
{
// propvar either is VT_EMPTY, or contains something other than a vector of 3 doubles
}
PropVariantClear(&propvar);
}
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
InitPropVariantFromDoubleVector