Função VariantToBuffer (propvarutil.h)
Extrai o conteúdo de um buffer armazenado em uma estrutura VARIANT do tipo VT_ARRRAY | VT_UI1.
Sintaxe
PSSTDAPI VariantToBuffer(
[in] REFVARIANT varIn,
[out] void *pv,
[in] UINT cb
);
Parâmetros
[in] varIn
Tipo: REFVARIANT
Referência a uma estrutura VARIANT de origem.
[out] pv
Tipo: VOID*
Ponteiro para um buffer de comprimento cb bytes. Quando essa função retorna, contém os primeiros bytes cb do valor do buffer extraído.
[in] cb
Tipo: UINT
O tamanho do buffer pv , em bytes. O buffer deve ter o mesmo tamanho que os dados a serem extraídos ou menores.
Retornar valor
Tipo: HRESULT
Retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
Dados extraídos com êxito. |
|
Variant não era do tipo VT_ARRRAY | VT_UI1. |
|
O valor do buffer VARIANT tinha menos de cb bytes. |
Comentários
Essa função é usada quando o aplicativo de chamada espera que um VARIANT mantenha um valor de buffer. O aplicativo de chamada deve marcar que o valor tenha o comprimento esperado antes de chamar essa função.
Se a VARIANT de origem tiver VT_ARRAY de tipo | VT_UI1, essa função extrai os primeiros bytes cb da estrutura e os coloca no buffer apontado por pv.
Se o valor armazenado tiver menos de cb bytes, VariantToBuffer falhará e o buffer não será modificado.
Se o valor tiver mais de cb bytes, VariantToBuffer terá êxito e truncará o valor.
Exemplos
O exemplo a seguir, a ser incluído como parte de um programa maior, demonstra como usar VariantToBuffer para acessar uma estrutura que foi armazenada em uma VARIANT.
// VARIANT var;
// Assume variable var is initialized and valid.
// The application expects var to hold a WIN32_FIND_DATAW structure
// with sizeof(WIN32_FIND_DATAW) bytes.
HRESULT hr = E_UNEXPECTED;
// Verify that the value length is acceptable before you call VariantToBuffer.
if (VariantGetElementCount(var) == sizeof(WIN32_FIND_DATAW))
{
WIN32_FIND_DATAW wfd;
hr = VariantToBuffer(var, &wfd, sizeof(wfd));
if (SUCCEEDED(hr))
{
// wfd is now initialized.
}
}
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 |