你目前正处于脱机状态,正在等待 Internet 重新连接

HOWTO: 疑难解答"未找到成员"0x80020003 错误

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 172108
概要
本文介绍一些常见原因的 OLE 自动化错误-2147352573 (80020003 十六进制),并建议的故障排除步骤。

该错误可能会显示为 DISP_E_MEMBERNOTFOUND。
更多信息

原因 1

您只能设置为 DISPATCH_METHOD wFlags 与呼叫 IDispatch::Invoke() 和该 dispid 标识一个属性。

解决方法 1

对于 IDispatch::Invoke() Win32 SDK 文档指出是否在 dispid 表示属性,您还必须设置 DISPATCH_PROPERTYGET 标志。若要从 Microsoft Office 95 的类型库生成类包装使用 Microsoft Visual c + + 时,通常会发生此问题。您必须显式修改生成的.cpp 文件中检索到使用 DISPATCH_PROPERTGET 标志属性的任何 InvokeHelper() 调用的。如果您使用 Microsoft Office 97 类型库,这是由自动完成 Microsoft Visual c + + 类向导。

原因 2

您正在使用错误的 IDispatch 指针。

分辨率 2

这种情况通常发生在使用 OLE 自动化与 Microsoft Office 97 应用程序或任何具有一个分层对象模型的应用程序时。 您可能已经初始化一个 COleDispatchDriver 类表示具有对象 Y IDispatch 指针的 X,对象。此错误也可能不会出现与 Microsoft Office 95,或只有一个 IDispatch 实现与其他应用程序。这是因为对象 X 和 Y 的对象可能都通过实现一个的 IDispatch 界面,因此会发生任何冲突。

原因 3

您正在使用无效的 dispid。

解决方案 3

服务器不能识别您 IDispatch::Invoke() 调用中指定了 dispid。验证它是正确的 dispid,可能是通过 IDispatch::GetIDsOfNames()。
参考
IDispatch 或 OLE 自动化的详细信息,阅读技术注意 TN039 MFC/OLE 自动化实施。

对类型库和如何使用它们与 Microsoft Visual c + + 的详细信息请参阅:

Microsoft Win32 软件开发工具包帮助 ; 在上的搜索:"键入库,用类向导导入"。

有关更多的信息,请参阅下面 Microsoft 知识库中相应的文章:

165273使用 OLE 自动化错误: XL97 错误

属性

文章 ID:172108 - 上次审阅时间:07/11/2005 20:17:28 - 修订版本: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbfaq kbhowto KB172108 KbMtzh
反馈