QT浏览器插件开发入门_第1页
QT浏览器插件开发入门_第2页
QT浏览器插件开发入门_第3页
QT浏览器插件开发入门_第4页
QT浏览器插件开发入门_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./QT浏览器插件开发入门简介主流的浏览器插件开发主要分为两种:ActiveX控件,适合IE核的浏览器NPAPI插件,适合Netscape浏览器的开发NPAPI全称为NetscapePluginApplicationProgrammingInterface在QT4.7.2下有这两种模式的开发支持,相关资料可在Qt文档上找到,ActiveX开发有QT提供ActiveQTserverlibrary支持库〔QT4.7.2,NPAPI开发QT4.7.2本身无此支持,需要下载相关的API,下载,解压后qtbrowserplugin目录就是。下面是完成的一个测试,首先做了一个功能库imagedemo,主要完成一个图片的显示功能,现在将它分别封装为ActiveX控件和NPAPI插件,供不同浏览器调用。ActiveX创建QTApplication工程工程名称:npgraphapp,创建时注意必须选择ActiveQTserverlibrary,如下图创建资源文件文件npgraphapp.rc中就一句话:1TYPELIB"npgraphapp.rc"修改类npgraphapp.h在文件中增加Q_CLASSINFO信息,代码如下:#ifndefNPGRAPHAPP_H#defineNPGRAPHAPP_H#include<QtGui/QtGui>classnpgraphapp:publicQWidget{ 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修改main.cpp在文件中增加QAXFACTORY_BEGIN宏,代码如下:#include"npgraphapp.h"#include<QtGui/QApplication>#include<ActiveQt/QAxFactory>QAXFACTORY_BEGIN<"{5E2C9F73-03E9-4351-9ECC-C46697D1A8D5}","{443A7F7F-FFE1-498A-AECB-D3EBCD5810CB}">QAXCLASS<npgraphapp>QAXFACTORY_END<>intmain<intargc,char*argv[]>{ QApplicationa<argc,argv>; if<!QAxFactory::isServer<>> { npgraphapp*w=newnpgraphapp<>; w->show<>; } returna.exec<>;}修改工程属性增加生成事件,如下图:在命令行中编辑〔注册ActiveX控件C:\Qt\4.7.2\bin\idc.exe$<TargetPath>/idl$<IntDir>\npgraphapp.idl-version1.0iferrorlevel1gotoVCReportErrormidl$<IntDir>\npgraphapp.idl/nologo/tlb$<IntDir>\npgraphapp.tlbiferrorlevel1gotoVCReportErrorC:\Qt\4.7.2\bin\idc.exe$<TargetPath>/tlb$<IntDir>\npgraphapp.tlbiferrorlevel1gotoVCReportErrorC:\Qt\4.7.2\bin\idc.exe$<TargetPath>/regserver注册和调用工程编译后自动生成事件会注册组件,注意看编译信息是否注册成功测试组件<OBJECTID="npgraphdemo"CLASSID="CLSID:4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C"HEIGHT="80%"WIDTH="80%"ALIGN="LEFT"></OBJECT>问题:如果仅仅在界面上绘制可创建QTActive库,如果界面上需调用其它QT控件或自定义的QT控件,需创建为可执行文件才可以NPAPI创建QTLibrary工程名称:npgraphdemo下载,解压后qtbrowserplugin目录就是NPAPI的封装支持,使用src中的文件,将下列的五个文件拷贝到工程目录下,在工程中加入qtnpapi.hqtbrowserplugin.hqtbrowserplugin_p.hqtbrowserplugin.cppqtbrowserplugin_win.cpp〔windows操作系统增加资源文件文件名称是npgraphdemo.rc,容如下1VERSIONINFOFILEVERSION1,0,0,1PRODUCTVERSION1,0,0,1FILEFLAGSMASK0x3fL#ifdef_DEBUGFILEFLAGS0x1L#elseFILEFLAGS0x0L#endifFILEOS0x4LFILETYPE0x2LFILESUBTYPE0x0LBEGINBLOCK"StringFileInfo"BEGINBLOCK"040904e4"BEGINVALUE"Comments","\0"VALUE"CompanyName","Nokia\0"VALUE"FileDescription","grapher\0"VALUE"FileExtents","g1n\0"VALUE"FileOpenName","Graphabledata<*.g1n>\0"VALUE"FileVersion","1,0,0,1\0"VALUE"InternalName","npgraphdemo\0"VALUE"LegalTrademarks","\0"VALUE"MIMEType","application/grapher"VALUE"OriginalFilename","npgraphdemo.dll\0"VALUE"PrivateBuild","\0"VALUE"ProductName","graphernpapiexample\0"VALUE"ProductVersion","1,0,0,1\0"VALUE"SpecialBuild","\0"ENDENDBLOCK"VarFileInfo"BEGINVALUE"Translation",0x409,1252ENDEND注意VALUE"MIMEType","application/grapher"这句,其中的MIMEType后面字符串为自定义类型新建模块定义文件在工程选择"新建项",创建npgraphdemo.def,如下图文件容:LIBRARY "npgraphdemo"EXPORTS NP_GetEntryPoints1 NP_Initialize2 NP_Shutdown3修改npgraphdemo.h在文件增加Q_CLASSINFO定义,注意Q_CLASSINFO<"MIME","application/grapher:g1n:GraphableASCIInumericdata">,此处的定义要和资源文件的MIMEType定义的一致#ifndefGRAPHFROM_H#defineGRAPHFROM_H#include<QtGui/QtGui>#include<qtbrowserplugin.h>QT_BEGIN_NAMESPACEclassQVBoxLayout;QT_END_NAMESPACEclassnpgraphdemo:publicQWidget,publicQtNPBindable{ Q_OBJECT Q_CLASSINFO<"ClassID","{2e5b2715-46b2-4831-ba9b-6a3b195d5ec8}"> Q_CLASSINFO<"InterfaceID","{94581136-3c0c-46cc-97a1-066061356d43}"> Q_CLASSINFO<"EventsID","{8c191b77-1894-45c7-9d6b-201dede95410}"> Q_CLASSINFO<"MIME","application/grapher:g1n:GraphableASCIInumericdata"> Q_CLASSINFO<"ToSuperClass","npgraphdemo">public: npgraphdemo<QWidget*parent=0>; ~npgraphdemo<>;…};#endif//GRAPHFROM_H修改npgraphdemo.cpp在文件中增加QTNPFACTORY_BEGIN宏#include"npgraphdemo.h"#include"imagedemo.h"npgraphdemo::npgraphdemo<QWidget*parent>:QWidget<parent>{…}npgraphdemo::~npgraphdemo<>{}QTNPFACTORY_BEGIN<"Qt-basedGraphPlugin","AQt-basedNSAPIplug-inthatgraphsnumericdata">;QTNPCLASS<npgraphdemo>QTNPFACTORY_END<>修改工程属性在"C/C++"下"预处理器"选项,增加"_X86_",如下图编译即可注册和调用注册方法如下1、在命令行中输入regedit,打开注册表编辑2、在HKEYLOCALMACHIN\SOFTWARE\MozillaPlugins下新建子项/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论