IDispatch::Invoke
9/8/2008
Este método fornece acessar propriedades e métodos expostos por um objeto.
Para obter mais informações sobre como usar esse método, consulte Automação.
Syntax
HRESULT Invoke(
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pDispParams,
VARIANT FAR* pVarResult,
EXCEPINFO FAR* pExcepInfo,
unsigned int FAR* puArgErr
);
Parameters
- dispIdMember
[no] Identifica o membro. Uso IDispatch::GetIDsOfNames ou documentação do objeto para obter a identificador da distribuição.
- riid
[no] Reservado para uso futuro; Defina como IID_NULL.
LCID
[no] Localidade contexto no qual interpretar parâmetros. O LCID é usado pelo GetIDsOfNames função e também é passado para Chamar Para permitir que o objectto interpretar seus parâmetros específicos para uma localidade.Aplicativos que não suporte múltiplo Idiomas Nacionais podem ignorar esse parâmetro.
wFlags
[no] Os sinalizadores que descrevem o contexto das Chamar chamar. Ele é um do seguinte valores.Valor Descrição DISPATCH_METHOD
O membro é invocado como um método. Se uma propriedade tem o mesmo nome, isso tanto o sinalizador DISPATCH_PROPERTYGET pode ser definido.
DISPATCH_PROPERTYGET
O membro é recuperado como um membro propriedade ou dados.
DISPATCH_PROPERTYPUT
O membro é alterado como um membro propriedade ou dados.
DISPATCH_PROPERTYPUTREF
O membro é alterado por uma atribuída de referência, em vez atribuída uma valor. Este sinalizador é válido somente quando a propriedade aceita uma referência a um objeto.
- pDispParams
[in, Out] Ponteiro para uma estrutura que contém uma matriz de parâmetros, uma matriz do parâmetro DISPIDs para nomeado parâmetros e contagens para o número de elementos de matrizes. Consulte a seção Comentários que segue para uma descrição das DISPPARAMS estrutura.
- pVarResult
[out] Ponteiro para a localidade onde o resultado é para ser armazenado, ou NULL se o chamador não espera nenhum resultado. Este parâmetro é ignorado se DISPATCH_PROPERTYPUT ou DISPATCH_PROPERTYPUTREF for especificado.
- pExcepInfo
[out] Ponteiro para uma estrutura que contém informações exceção. Essa estrutura deve ser preenchida se DISP_E_EXCEPTION é retornado. Pode ser NULL.
- puArgErr
[out] O índice dentro rgvarg Do primeiro parâmetro que tem um erro. Argumentos são armazenados no pDispParams-> rgvarg em ordem inversa, portanto, o primeiro parâmetro é aquele com o índice mais alto na matriz. Este parâmetro é retornado somente quando o valor de retorno resultante é DISP_E_TYPEMISMATCH ou DISP_E_PARAMNOTFOUND. Para obter detalhes, consulte Retornando erros.
Return Value
A seguinte tabela mostra os valores de retorno para esta função.
Valor | Descrição |
---|---|
S_OK |
O sucesso. |
DISP_E_BADPARAMCOUNT |
O número de elementos fornecidos para DISPPARAMS é diferente do número de parâmetros aceitos pelo método ou propriedade. |
DISP_E_BADVARTYPE |
Um dos parâmetros na rgvarg não é um válido variante tipo. |
DISP_E_EXCEPTION |
O aplicativo precisa aumentar uma exceção. Neste maiúsculas e minúsculas, a estrutura passado pExcepInfo deve ser preenchido. |
DISP_E_MEMBERNOTFOUND |
O membro solicitado não existe, ou a chamar para Chamar tentou definir o valor de uma propriedade READ-ONLY. |
DISP_E_NONAMEDARGS |
Esta implementação de IDispatch dá suporte não nomeado parâmetros. |
DISP_E_OVERFLOW |
Um dos parâmetros na rgvarg não pôde ser forçado para o tipo especificado. |
DISP_E_PARAMNOTFOUND |
Um do parâmetro DISPIDs não corresponder a um parâmetro sobre o método. Neste maiúsculas e minúsculas, puArgErr Deve ser definido para o primeiro parâmetro que contém o erro. |
DISP_E_TYPEMISMATCH |
Não foi possível forçar um ou mais dos parâmetros. O índice dentro rgvarg Do primeiro parâmetro com o tipo incorreto é retornado na puArgErr parâmetro. |
DISP_E_UNKNOWNINTERFACE |
Identificador de interface passado riid Não é IID_NULL. |
DISP_E_UNKNOWNLCID |
O membro que está sendo chamado interpreta os parâmetros seqüência de caracteres de acordo com o LCID e o LCID não é reconhecido. Se o LCID não é necessário interpretar parâmetros, esse erro não deve ser retornado. |
DISP_E_PARAMNOTOPTIONAL |
Um exigido parâmetro foi omitido. |
Em 16-bit versões, você pode definir seus próprios erros usando a macro valor MAKE_SCODE.
Remarks
Geralmente, você não deve implementar Chamar diretamente. Em vez disso, use o interface de distribuição criar funções CreateStdDispatch e DispInvoke.
Se algum processamento Application-specific precisa ser executada antes chamado um membro, a codificar deve executar as ações necessárias e em seguida, chamar ITypeInfo::Invoke Para invocar o membro.
ITypeInfo::Invoke Funciona exatamente como IDispatch::Invoke. O padrão das implementações do IDispatch::Invoke Criado por CreateStdDispatch e DispInvoke Adiar a ITypeInfo::Invoke.
Em um cliente ActiveX, IDispatch::Invoke Deve ser usado para get e defina os valores das propriedades, ou para chamar um método de um objeto ActiveX. O dispIdMember parâmetro identifica o membro para invocar. Os DISPIDs que identificam os membros são definidos pela implementor do objeto e podem ser determinados usando documentação do objeto, o GetIDsOfNames função, ou a ITypeInfo interface.
As informações que segue os desenvolvedores endereços de clientes ActiveX e outras pessoas que usam codificar para expor objetos ActiveX. Ele descreve o comportamento que os usuários de objetos expostos devem esperar.
Requirements
Header | oaidl.h, oaidl.idl |
Library | oleaut32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
IDispatch
DISPPARAMS
IDispatch::GetIDsOfNames
ITypeInfo
ITypeInfo::Invoke
dispinterface