COMO: Resolver problemas de "Membro não encontrado" 0x80020003 erro

Traduções de Artigos Traduções de Artigos
Artigo: 172108 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve algumas causas comuns do erro Automação OLE - 2147352573 (hex 80020003) e sugeridas passos de resolução de problemas.

O erro pode ser mostrado como DISP_E_MEMBERNOTFOUND.

Mais Informação

Causa 1

Estiver a chamar IDispatch::Invoke() com wFlags definido apenas como DISPATCH_METHOD e o dispid identifica uma propriedade.

Resolução 1

A documentação do Win32 SDK para IDispatch::Invoke() indica que se o dispid representa uma propriedade, tem também de definir o sinalizador DISPATCH_PROPERTYGET. Este problema ocorre normalmente quando utilizar o Microsoft Visual C++ para gerar wrappers de classe a partir do Microsoft Office 95 bibliotecas de tipos. Tem de modificar explicitamente ficheiro de qualquer chamada InvokeHelper() que obtém uma propriedade para utilizar o sinalizador DISPATCH_PROPERTGET .cpp gerado. Se utilizar bibliotecas de Microsoft Office 97, isto é efectuado automaticamente pelo Microsoft Visual C++ classe assistente.

Causa 2

Está a utilizar o ponteiro de IDispatch errado.

Resolução 2

Isto ocorre normalmente quando utiliza automatização OLE com as aplicações do Microsoft Office 97 ou qualquer aplicação que tenha um modelo de objectos hierárquica. Pode ter inicializado uma classe COleDispatchDriver, que representa um objecto X, com o ponteiro de IDispatch para um objecto Y. Este erro pode ou não poderá ocorrer com o Microsoft Office 95 ou outras aplicações com apenas uma implementação de IDispatch. Isto acontece porque o objecto X e Y de objecto podem ambos ser implementados através de uma interface IDispatch e deste modo não ocorrerá nenhum conflito.

Causa 3

Está a utilizar um dispid inválido.

Resolução 3

O servidor não reconhece dispid que especificou na chamada para IDispatch::Invoke(). Verifique se este está dispid correcto, possivelmente através de IDispatch::GetIDsOfNames().

Referências

Para obter mais informações sobre IDispatch ou automatização OLE, leia Tech Nota TN039 "Implementação de automatização OLE/MFC".

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

Ajuda do Microsoft Win32 Software Development Kit; procura de: "escreva bibliotecas, importar com ClassWizard".

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

165273Erro: XL97 erros utilizando Automatização OLE

Propriedades

Artigo: 172108 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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