QT 浏览器插件开发入门 1 简介 主流的浏览器插件开发主要分为两种: ActiveX 控件,适合IE 内核的浏览器 NPAPI 插件,适合Netscape 浏览器的开发 NPAPI全称为 Netscape Plugin Application Programming Interface 在QT4.7.2 下有这两种模式的开发支持,相关资料可在Qt 文档网站上找到,ActiveX 开发有QT 提供ActiveQT server library 支持库(QT4.7.2),NPAPI 开发QT4.7.2 本身无此支持,需要下载相关的API,下载qt-solutions-qt-solutions-master.tar.gz,解压后qtbrowserplugin 目录就是。 下面是完成的一个测试,首先做了一个功能库imagedemo,主要完成一个图片的显示功能,现在将它分别封装为ActiveX 控件和 NPAPI 插件,供不同浏览器调用。 2 Activ eX 2.1 创建 QT Application 工程 工程名称:npgraphapp,创建时注意必须选择 ActiveQT server library,如下图 2.2 创建资源文件 文件npgraphapp.rc 中就一句话: 1 TYPELIB "npgraphapp.rc" 2.3 修改类 npgraphapp.h 在文件中增加 Q_CLASSINFO 信息,代码如下: #ifndef NPGRAPHAPP_H #define NPGRAPHAPP_H #include
class npgraphapp : public QWidget { Q_OBJECT Q_CLASSINFO("ClassID", "{4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C}"); Q_CLASSINFO("InterfaceID", "{615B202B-C4F2-4C9F-B9F5-2F9D52ECF0BC}"); Q_CLASSINFO("EventsID", "{C9C4EB5F-F926-4770-AA7F-50702B53DB3E}"); public: npgraphapp(QWidget *parent = 0); ~npgraphapp(); … }; #endif // NPGRAPHAPP_H 2.4 修改 main.cpp 在文件中增加 QAXFACTORY_BEGIN 宏,代码如下: #include "npgraphapp.h" #include #include QAXFACTORY_BEGIN("{5E2C9F73-03E9-4351-9ECC-C46697D1A8D5}", "{443A7F7F-FFE1-498A-AECB-D3EBCD5810CB}") QAXCLASS(npgraphapp) QAXFACTORY_END() int main(int argc, char *argv[]) { QApplication a(argc, argv); if ( !QAxFactory::isServer() ) { npgraphapp* w = new npgraphapp(); w->show(); } return a.exec(); } 2 .5 修改工程属性 增加生成事件,如下图: 在命令行中编辑(注册 ActiveX 控件) C:\Qt\4.7.2\bin\idc.exe $(TargetPath) /idl $(IntDir)\npgraphapp.idl -versi...