COMO: Solucionar "Membro não encontrado" 0x80020003 erro

Traduções deste artigo Traduções deste artigo
ID do artigo: 172108 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve algumas causas comuns do erro de automação OLE - 2147352573 (80020003 hex) e sugerida etapas de solução de problemas.

O erro pode ser mostrado como DISP_E_MEMBERNOTFOUND.

Mais Informações

Causa 1

Você está chamando IDispatch::Invoke() com wFlags definido somente para DISPATCH_METHOD e o dispid identifica uma propriedade.

Resolução 1

A documentação do SDK do Win32 para IDispatch::Invoke() informa que, se o dispid representa uma propriedade, você deve também definir o sinalizador DISPATCH_PROPERTYGET. Esse problema normalmente ocorre quando você usar o Microsoft Visual C++ para gerar wrappers de classe de bibliotecas de tipos da Microsoft Office 95. Você precisará modificar o arquivo .cpp gerados para qualquer chamada InvokeHelper() que recupera uma propriedade para usar o sinalizador DISPATCH_PROPERTGET explicitamente. Se você usar bibliotecas de tipos da Microsoft Office 97, isso é feito automaticamente pelo Assistente de classe C++ Visual do Microsoft.

Causa 2

Você está usando o ponteiro errado de IDispatch.

Resolução 2

Isso normalmente ocorre quando você usar automação OLE com os aplicativos do Microsoft Office 97, ou qualquer aplicativo que tem um modelo de objeto hierárquicos. Você pode ter inicializada uma classe COleDispatchDriver, que representa um objeto X, com o ponteiro IDispatch para um objeto Y. Este erro pode ou não pode ocorrer com o Microsoft Office 95 ou outros aplicativos com apenas uma implementação de IDispatch. Isso ocorre porque objeto X e Y do objeto poderiam ambos ser implementados por meio de uma interface IDispatch e, portanto, nenhum conflito ocorrerá.

Causa 3

Você está usando um dispid inválido.

Resolução 3

O servidor não reconhece o dispid que você tenha especificado na chamada para IDispatch::Invoke(). Verifique se isso está dispid correto, possivelmente por meio de IDispatch::GetIDsOfNames().

Referências

Para obter mais informações sobre IDispatch ou automação OLE, leia técnico Observação TN039 "Implementação de automação do MFC/OLE".

Para obter mais informações sobre bibliotecas de tipos e como usá-los com o Microsoft Visual C++, consulte:

Ajuda do Microsoft Win32 Software Development Kit; procure em: "tipos de bibliotecas, importando com ClassWizard".

Para obter informações adicionais, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:

165273Erro: XL97 erros usando automação OLE

Propriedades

ID do artigo: 172108 - Última revisão: segunda-feira, 11 de julho de 2005 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Platform Software Development Kit-January 2000 Edition
Palavras-chave: 
kbmt kbfaq kbhowto KB172108 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 172108

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com