InfoPath 2007 或 InfoPath 2003 Service Pack 1 便停止了响应 ReadyState 属性与 ActiveX 控件时

文章翻译 文章翻译
文章编号: 888705 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

Microsoft Office InfoPath 2007 或 Microsoft Office InfoPath 2003 Service Pack 1 便停止了响应 ReadyState 属性与 ActiveX 控件时。当您打开或预览包含 ActiveX 控件具有标准 ReadyState 属性的 InfoPath 表单时,会出现此问题。

注意此外,您不能将未来的设计添加到窗体视图中。例如对于您不能将新控件添加到窗体视图,并且您无法访问在脚本编辑器。此外,您不能很容易地删除控件,从窗体视图。

原因

之所以会出现此问题,因为 InfoPath 正在等待 ReadyState 属性的 ActiveX 控件设置为"4。

替代方法

不要使用 ReadyState 属性的 ActiveX 控件。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的错误。

更多信息

ReadyState 属性具有以下枚举:
  • READYSTATE_UNINITIALIZED = 0
  • READYSTATE_LOADING = 1
  • READYSTATE_LOADED = 2
  • READYSTATE_INTERACTIVE = 3
  • READYSTATE_COMPLETE = 4

重现此问题的步骤

生成名为 ReadyStateControl 的控件。若要这样做,请按照下列步骤操作:
  1. 启动 Microsoft Visual Studio。NET 2003。
  2. 文件 菜单上单击 新建,然后单击 项目 以创建新项目。
  3. 新建项目 对话框中单击 Visual c + + 项目 并单击 ATL 项目,然后在 名称 框中键入 ReadyStateControl
  4. 单击 确定,然后单击 完成 接受所有默认设置为 ATL 项目。
  5. 项目 菜单上单击 添加类
  6. 双击 添加类 对话框中的 ATL 控件
  7. ATL 控件向导 对话框中键入 ReadyState短名称 框中。
  8. 单击 常用属性、 单击 不支持 列表中的 准备状态,然后单击 $ >就绪状态 属性添加到 支持 列表中。
  9. 单击 完成
  10. Readystate.h 文件中找到下面一行
    public CComControl<CReadyState>
    放入下列行下到上一行
     public IObjectSafetyImpl<CReadyState, INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    注意 您必须添加一个逗号 (,) 到现有行之前添加新行。
  11. 单击 生成 菜单上的 生成解决方案 以生成项目。
测试 ReadyStateControl 控件。若要这样做,请按照下列步骤操作:
  1. 启动 InfoPath。
  2. 文件 菜单上单击 设计表单
  3. 设计表单 窗格中单击 新建空白表单
  4. 单击 控件,然后单击 添加或删除自定义控件
  5. 添加或删除自定义控件 对话框中单击 添加
  6. 在添加自定义控件向导中,单击 CReadyState 对象,然后单击 下一步
  7. 单击 下一步 继续接受默认选项。单击 完成,然后单击 确定
  8. 自定义,下单击在 控件 窗格中的 CReadState 对象

    这将 CReadState 对象 的控件添加到窗体中。
  9. 在 $ 标准,下单击 文本框TextBox 控件添加到窗体。
  10. 单击 预览表单

    InfoPath 2003 Service Pack 1 没有响应。您不能访问 TextBox 控件。

属性

文章编号: 888705 - 最后修改: 2007年4月18日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
关键字:?
kbmt kbtshoot kbqfe kbbug KB888705 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 888705
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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