Share via


Método ITypeInfo::Invoke (oaidl.h)

Invoca um método ou acessa uma propriedade de um objeto que implementa a interface descrita pela descrição do tipo.

Sintaxe

HRESULT Invoke(
  [in]      PVOID      pvInstance,
  [in]      MEMBERID   memid,
  [in]      WORD       wFlags,
  [in, out] DISPPARAMS *pDispParams,
  [out]     VARIANT    *pVarResult,
  [out]     EXCEPINFO  *pExcepInfo,
  [out]     UINT       *puArgErr
);

Parâmetros

[in] pvInstance

Uma instância da interface descrita por essa descrição de tipo.

[in] memid

O membro da interface.

[in] wFlags

Sinalizadores que descrevem o contexto da chamada invoke.

Valor Significado
DISPATCH_METHOD
O membro é acessado como um método . Caso haja ambiguidade, este sinalizador e o sinalizador DISPATCH_PROPERTYGET poderão ser definidos.
DISPATCH_PROPERTYGET
O membro é recuperado como uma propriedade ou membro de dados.
DISPATCH_PROPERTYPUT
O membro é alterado como uma propriedade ou membro de dados.
DISPATCH_PROPERTYPUTREF
O membro é alterado usando uma atribuição de referência, em vez de uma atribuição de valor. Esse sinalizador é válido somente quando a propriedade aceita uma referência a um objeto .

[in, out] pDispParams

Uma matriz de argumentos, uma matriz de DISPIDs para argumentos nomeados e contagens do número de elementos em cada matriz.

[out] pVarResult

O resultado. Deve ser nulo se o chamador não espera nenhum resultado. Se wFlags especificar DISPATCH_PROPERTYPUT ou DISPATCH_PROPERTYPUTREF, pVarResultis será ignorado.

[out] pExcepInfo

Uma estrutura de informações de exceção, que será preenchida somente se DISP_E_EXCEPTION for retornado. Se pExcepInfo for nulo na entrada, somente um erro HRESULT será retornado.

[out] puArgErr

Se Invoke retornar DISP_E_TYPEMISMATCH, puArgErr indicará o índice (dentro de rgvarg) do argumento com tipo incorreto. Se mais de um argumento retornar um erro, puArgErr indicará apenas o primeiro argumento com um erro. Os argumentos de pDispParams->rgvarg são exibidos na ordem inversa; portanto, o primeiro argumento é aquele com o maior índice na matriz. Esse parâmetro não pode ser nulo.

Retornar valor

Código de retorno Descrição
S_OK
Êxito.
E_INVALIDARG
Um ou mais dos argumentos não são válidos.
DISP_E_EXCEPTION
O membro que está sendo invocado retornou um erro HRESULT. Se o membro implementar IErrorInfo, os detalhes estarão disponíveis no objeto de erro. Caso contrário, o parâmetro pExcepInfo contém detalhes.
 

Qualquer um dos erros IDispatch::Invoke também pode ser retornado.

Comentários

Use a função ITypeInfo::Invoke para acessar um membro de um objeto ou invocar um método que implementa a interface descrita por essa descrição de tipo. Para objetos que dão suporte à interface IDispatch , você pode usar Invoke para implementar IDispatch::Invoke.

ITypeInfo::Invoke usa um ponteiro para uma instância da classe . Caso contrário, seus parâmetros são os mesmos que IDispatch::Invoke, exceto que ITypeInfo::Invoke omite os parâmetros refiid e lcid . Quando chamado, ITypeInfo::Invoke executa as ações descritas pelos parâmetros IDispatch::Invoke na instância especificada.

Para membros da interface VTBL, ITypeInfo::Invoke passa o LCID das informações de tipo para parâmetros marcados com o atributo lcid e o valor retornado para o atributo retval.

Se a descrição do tipo herdar de outra descrição de tipo, essa função se repetirá na descrição do tipo base para localizar o item com a ID de membro solicitada.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho oaidl.h

Confira também

ITypeInfo