ZIEWin 2.0 ActiveX 控件

本文档介绍如何在 Z and I Emulator for Windows 中设置 ActiveX 控件。

介绍

Z and I Emulator for Windows 中的 ActiveX/OLE 支持有限,并且对 Office/Lotus 工具的支持极少,而 Office/Lotus 工具可进一步用于实现 ZIEWin 操作自动化。但是,ZIEWin 未提供一种将自身嵌入为完整的 ActiveX 对象的方法,也没有将其实例化为表单对象的方法。

ZIEWin 为 .NET Framework 目标应用程序(如 WinForms 应用程序)提供了 API 接口(HACL 自动化/COM 对象),而 ZIEWin 提供的 ActiveX/OLE 支持是基本支持。没有用于嵌入 ZIEWin Runtime 的 API 接口。

Z and I Emulator for Windows v2.0 有何变化?

ZIEWin 2.0 包 pcsctrX.ocx,即可以托管在 OLE 容器中的 ActiveX 控件。OLE 容器控件允许您将 OLE 对象添加至应用程序。OLE 对象包括 ActiveX 控件(.OCX 文件)和在其他应用程序(例如 Microsoft Word 和 Microsoft Excel)中创建的可插入 OLE 对象。

在向 OLE 容器或 Automation Client 添加 pcsctrX.ocx 之后,用户可以通过提供会话标识(可选)和 ZIEWin 工作站概要文件在 ActiveX 控件中启动 ZIEWin 会话(必需)。启动后,ZIEWin 会话将嵌入到应用程序中。

此控件支持:

  • ZIEWin 的 ActiveX 控件可实现静态和动态嵌入 ZIEWin 的所有功能,将其作为 Windows 窗体(或 .NET 应用程序)中的 ActiveX 控件对象。

    用户可以通过提供两个重要参数来启动 ZIEWin:

    1. 会话 ID(可选)
      • 设置时:这可以从“A”设置为“Z”。
      • 空白:控件逻辑生成 SessionID,并使用下一个可用的会话标识启动 ZIEWin。
      • 已存在/已启动:为用户提供在 ActiveX 控件中嵌入同一会话的选项。
    2. 会话概要文件(必需):用户必须提供有效的 .ws 概要文件名,否则嵌入式 ZIEWin 启动将失败。
      • 会话概要文件名可能具有也可能不具有“.ws”扩展名。
      • 如果未提供路径,则从注册表中选取缺省路径。
      • 使用定制路径时,将使用定制路径中的 .ws 文件启动 ZIEWin。
  • 自动化/屏幕抓取:基于自动化对象 (HACL) 和仿真器编程 (ELLAHPI) 的操作受支持。
    • 嵌入式 ZIEWin (pcsctrX) 中的菜单和工具栏项将被隐藏。
    • 将处理错误/异常。
系统需求

1.Visual Studio 2005 或更高版本:使用 pcsctrX.ocx 构建客户机应用程序

2.Microsoft Office(32 位):如果客户机应用程序在 Microsoft Office 应用程序上执行

3.Z and I Emulator for Windows V13.0.1.0 或更高版本

安装 在用户需要执行使用 pcsctrX.ocx 构建的 OLE/自动化容器应用程序的系统上注册 pcsctrX.ocx。要注册,请在命令窗口中使用提升的权限执行以下命令:regsvr32 pcsctrX.ocx。要注销,请在命令窗口中使用提升的权限执行以下命令:regsvr32 /u pcsctrX.ocx

接口CHAR pcsOcxStartSession (CHAR sessID, BSTR wsProfile) 使用指定的工作站概要文件在 ActiveX 控件窗口中启动 ZIEWin 会话,也可以指定(可选)短会话标识。

参数

  • sessID:表示空间短会话标识。它是可选的,如果未提供,则会分配下一个可用的会话标识。
  • wsProfile:要装入的概要文件的路径和完整文件名。路径是可选的,但完整的文件名是必需的。
    • 返回值。
    • 返回表示空间短会话标识。o 如果提供了 sessID,则返回相同的值,否则返回新分配的会话标识。
    • 如果 ZIEWin 会话无法启动,则返回空格/NULL 值。
VARIANT_BOOL pcsOcxConnectSession(void) 将 ZIEWin 仿真器连接到主机数据流。这与进入 ZIEWin 仿真器“通信”菜单并选择“连接”具有相同的效果。参数
  • 返回值
    • 如果已成功连接,则返回 true,否则返回 false。
VARIANT_BOOL pcsOcxDisconnectSession(void) 断开 ZIEWin 仿真器与主机数据流的连接。这与进入 ZIEWin 仿真器“通信”菜单并选择“断开连接”具有相同的效果。参数
  • 返回值
    • 如果已成功断开连接,则返回 true,否则返回 false。

限制

ZIEWin 窗口识别 pcsctrX.ocx 根据其名称、“会话标识*”识别 ZIEWin 窗口。

例如,会话 A – [24 x 80]。

如果未遵循此命名标准(通过更改“编辑”->“首选项”->“显示设置配置”),则 ZIEWin 会话将无法显示在 ActiveX 控件屏幕中。

冗余断开连接上下文项 断开出现在 pcsctrX ActiveX 控件上的静态调用方法中的上下文菜单项。这一限制将在即将发布的发行版中得到解决。

菜单和工具栏状态冲突 如果 ZIEWin 会话概要文件与嵌入式 ActiveX 控件中指定的概要文件相同,则 ZIEWin 应嵌入到 ActiveX 控件中,而不会更改状态,但是菜单和工具栏项可见。这一限制将在即将发布的发行版中得到解决。

已知问题 要在 Z and I Emulator for Windows 方法“RegisterOIAEvent”中使用的 pcsctrX.ocx 容器应用程序中接收所有 OIA 事件的通知,但容器应用程序无法接收来自 autOIA 的事件通知。

观察 这是自动化 API“RegisterOIAEvent”中的一个缺陷。