Roson的Qt之旅 #135 在Qt中使用ActiveX控件和COM对象

235 篇文章 186 订阅

Active Qt

Qt的ActiveX和COM支持使Windows的Qt开发者能够:

  • 在他们的Qt应用程序中访问和使用由任何ActiveX服务器提供的ActiveX控件和COM对象.

  • 使他们的 Qt 应用程序作为 COM 服务器可用,将任何数量的 Qt 对象和部件作为 COM 对象和 ActiveX 控件.

关于在Qt中使用ActiveX的更多信息,请参阅在Qt中构建ActiveX服务器.

ActiveQt框架由两个模块组成。 QAxContainer模块是一个实现QObject和QWidget子类的静态库,QAxObject和QAxWidget,作为COM对象和ActiveX控件的容器。 QAxServer模块是一个静态库,实现了进程中和可执行的COM服务器的功能。该模块提供了QAxAggregated、QAxBindable和QAxFactory类。 提供了一套工具来简化使用ActiveX的Qt项目的开发和构建。 要构建静态库,请切换到activeqt目录(通常是QTDIR/src/activeqt),并在容器和控制子目录下运行qmake和你的make工具。qaxcontainer.lib和qaxserver.lib库将被链接到QTDIR/lib。 如果你使用的是Qt的共享配置,进入插件子目录,运行qmake和你的make工具来构建一个插件,将QAxContainer模块集成到Qt Designer中。

ActiveQt的工具

以下工具可以使Qt与ActiveX组件集成。

也可以查阅ActiveQt Framework

IDC - The Interface Description Compiler (ActiveQt)
The dumpcpp Tool (ActiveQt)
The dumpdoc Tool (ActiveQt)
testcon - An ActiveX Test Container (ActiveQt)

在Qt中使用ActiveX控件和COM

QAxContainer模块是ActiveQt框架的一部分。它提供了一个实现QWidget子类QAxWidget的库,作为ActiveX控件的容器,以及一个QObject子类QAxObject,可以用来轻松访问非可视的COM对象。通过QAxScript、QAxScriptManager和QAxScriptEngine类,使用这些类嵌入的COM对象的脚本是可能的,一组工具使得以编程方式访问COM对象变得容易。

该模块由六个类组成:

  1. QAxBase是一个抽象类,它提供了一个初始化和访问COM对象或ActiveX控件的API。

  2. QAxObject提供了一个包装COM对象的QObject。

  3. QAxWidget是一个包装ActiveX控件的QWidget。

  4. QAxScriptManager、QAxScript和QAxScriptEngine提供了一个到Windows脚本主机的接口。

在Qt中构建ActiveX服务器

QAxServer模块是ActiveQt框架的一部分。它由三个类组成:

  1. QAxFactory定义了一个用于创建COM对象的工厂。

  2. QAxBindable提供了Qt widget和COM对象之间的接口。

  3. QAxAggregated可以被子类化以实现额外的COM接口。

QAxContainer C++类

QAxContainer模块是一个用于访问ActiveX控件和COM对象的Windows专用扩展。QAxContainer是Active Qt模块的一部分。在Qt中使用ActiveX控件和COM页面包含了关于ActiveX控件容器的信息。

QAxBase抽象类,提供初始化和访问COM对象的API
QAxObject包裹COM对象的QObject
QAxScript围绕脚本代码的封装器
QAxScriptEngine围绕脚本引擎的封装器
QAxScriptManager应用程序对象和脚本代码之间的桥梁
QAxSelect注册COM组件的选择对话框
QAxWidget包裹ActiveX控件的QWidget

QAxServer C++类

QAxServer模块是一个仅适用于Windows的静态库,你可以用它来把一个标准的Qt二进制文件变成一个COM服务器。QAxServer是Active Qt模块的一部分。在Qt中构建ActiveX服务器页面包含了关于将Qt二进制文件变成COM服务器的信息。

QAxAggregated用于实现其他COM接口的抽象基类
QAxBindableQWidget和ActiveX客户端之间的接口
QAxFactory定义一个用于创建COM组件的工厂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen Roson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值