Compartilhar via


IDispatch::Invoke

Windows Mobile SupportedWindows Embedded CE Supported

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