Compartilhar via


VariantChangeTypeEx

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

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

Syntax

HRESULT VariantChangeTypeEx( 
  VARIANTARG FAR* pvargDest, 
  VARIANTARG FAR* pvarSrc, 
  LCID lcid, 
  unsigned short wFlags, 
  VARTYPE vt 
); 

Parameters

  • pvargDest
    [out] Ponteiro para o VARIANTARG 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.
  • LCID
    [no] LCID para a variante para coagir.

    O LCID é útil quando o tipo da origem ou destino VARIANTARG VT_BSTR, VT_DISPATCH ou VT_DATE.

  • 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 sua propriedade de valor.

    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 do VARIANTARG especificado por *pvargDest são garantidas para ser igual para este 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 VariantChangeTypeEx função manipula coercions entre os tipos fundamentais (incluindo numérico - para - seqüência de caracteres e coercions seqüência-para-numérico).

A alteração um tipo com o sinalizador VT_BYREF definido como um sem VT_BYREF, alteração de relacionado valueto VariantChangeTypeEx.

Para objetos coagir para tipos fundamentais, obtenha o valor da Valor propriedade.

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

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

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

Se VariantChangeTypeEx 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 um 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
LCID
VARIANT and VARIANTARG
IDispatch::Invoke
VariantChangeType
IDispatch