VariantCopyInd
9/8/2008
Essa função libera de conteúdo existente de variante de destino e faz um copiar de origem VARIANTARG, executar o engano necessário se a origem é especificada seja VT_BYREF.
Syntax
HRESULT VariantCopyInd(
VARIANT FAR* pvarDest,
VARIANTARG FAR* pvargSrc
);
Parameters
- pvarDest
[no] Ponteiro para o VARIANTARG que recebe a copiar.
- pvargSrc
[no] Ponteiro para o VARIANTARG que é copiado.
Return Value
Retorna os valores HRESULT mostrados a seguinte tabela.
Valor | Descrição |
---|---|
S_OK |
O sucesso. |
DISP_E_ARRAYISLOCKED |
A variante contém uma matriz que está bloqueada. |
DISP_E_BADVARTYPE |
A origem e destino possuem um inválido variante tipo (geralmente não inicializado). |
E_OUTOFMEMORY |
Não foi possível alocar memória para a copiar. |
E_INVALIDARG |
O argumento pvargSrc Foi VT_ARRAY. |
Remarks
Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo.
Essa função é útil quando é necessário um copiar de uma variante, e garantir que ele não é VT_BYREF, como quando manipulação argumentos em uma implementação de IDispatch::Invoke.
De exemplo, se a origem é um (VT_BYREF | VT_I2), o destino será um BYVAL | VT_I2. O mesmo é verdadeiro para todas as combinações VT_BYREF LEGAIS, INCLUINDO VT_VARIANT.
Se pvargSrc é (VT_BYREF | VT_VARIANT) e a variante contido é VT_BYREF, a variante contido também é dereferenced.
Essa função libera conteúdo existente de pvarDest.
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
VARIANT and VARIANTARG
IDispatch::Invoke