Compartilhar via


VariantChangeType

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função converte uma variante de um tipo para outro.

Syntax

HRESULT VariantChangeType( 
  VARIANTARG FAR* pvargDest, 
  VARIANTARG FAR* pvarSrc, 
  unsigned short wFlags, 
  VARTYPE vt 
); 

Parameters

  • pvargDest
    [out] Ponteiro para o VarBoolFromDisp Para receber o tipo coagido. Se esse for o mesmo pvarSrc, a variante é convertido em local.
  • pvarSrc
    [no] Ponteiro para a origem VARIANTARG Para ser forçados.
  • wFlags
    [no] Sinaliza que controle a coercion.

    O sinalizador Definição somente é VARIANT_NOVALUEPROP, o que impede a função tentando coagir um objeto para um tipo fundamental por obter a propriedade Value.

    Aplicativos Defina esse sinalizador somente se necessário, pois ele torna seu comportamento inconsistente com outros aplicativos.

  • VT
    [no] Especifica o tipo para coagir para. Se o código de retorno é S_OK, o VT membro das VARIANTARG especificado pelo *pvargDest é o mesmo que esse valor.

Return Value

Retorna os valores HRESULT mostrados a seguinte tabela.

Valor Descrição

S_OK

O sucesso.

DISP_E_BADVARTYPE

A variante tipo VT não é um válido tipo de variante.

DISP_E_OVERFLOW

Os dados apontados pelo pvarSrc não é adequado no tipo de destino.

DISP_E_TYPEMISMATCH

O argumento não pôde ser forçado para o tipo especificado.

E_INVALIDARG

Um argumento é inválido.

E_OUTOFMEMORY

Não foi possível alocar memória para a conversão.

Remarks

Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo.

O VariantChangeType função manipula coercions entre os tipos fundamentais (incluindo numérico - para - seqüência de caracteres e coercions seqüência-para-numérico).

Uma variante que tenha VT_BYREF definido é forçado para um valor por obtendo o relacionado valor. Um objeto é forçado para um valor invocando o objeto Valor propriedade (DISPID_VALUE).

Normalmente, o implementador de IDispatch::Invoke Determina qual membro está sendo acessado e, em seguida, chama VariantChangeType Para o valor de um ou mais argumentos get.

De exemplo, se a IDispatch chamar especifica um SetTitle membro que leva um argumento string, o implementador poderia chamar VariantChangeType Para tentar coagir o argumento para VT_BSTR.

Se VariantChangeType não retornar um erro, o argumento, em seguida, poderia ser obtido diretamente das bstrVal membro das VARIANTARG.

Se VariantChangeType Retorna DISP_E_TYPEMISMATCH, o implementor definiria *puArgErr para 0 (indicando o argumento em erro) e retornar DISP_E_TYPEMISMATCH de IDispatch::Invoke.

Matrizes de um tipo não podem ser convertidos para matrizes de outro tipo com essa função.

O tipo de uma VARIANTARG não deve ser alterado na rgvarg matriz no local.

Requirements

Header oleauto.h
Library oleaut32.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Automation Functions
VarBoolFromDisp
VARIANT and VARIANTARG
IDispatch::Invoke
IDispatch