WPS二次开发 插件教材.doc_第1页
WPS二次开发 插件教材.doc_第2页
WPS二次开发 插件教材.doc_第3页
WPS二次开发 插件教材.doc_第4页
WPS二次开发 插件教材.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

二次开发 插件教材使用VB开发WPS Office插件使用VB开发WPS Office插件教程内容简介:WPS Office的插件由一个实现了特定接口的DLL、一个XML配置文件以及插件本身需要的其他文件组成。WPS Office 插件DLL实际上是一个实现了_IDTExtensibility2接口的COM组件。 1. _IDTExtensibility2 插件DLL要导出COM要 Office的插件由一个实现了特定接口的DLL、一个XML配置文件以及插件本身需要的其他文件组成。WPS Office 插件DLL实际上是一个实现了_IDTExtensibility2接口的COM组件。_IDTExtensibility2介绍插件DLL要导出COM要求的DllCanUnloadNow、DllGetClassObject、DllRegisterServer和DllUnregisterServer四个函数,并实现_IDTExtensibility2接口。_IDTExtensibility2接口的定义在Kingsoft Add-In Designer类型库中,如果是C+在C:/Program Files/Kingsoft/WPS Office Personal/office6/ksaddndr.dll导入ksaddndr.dll就可以使用这个接口。在这里建议用官网的插件向导生成工程这样容易生成dll文件:/viewthread.php?tid=21838734&highlight=%E6%8F%92%E4%BB%B6%E5%90%91%E5%AF%BC。下载下来解压,点击addinwiz.exe生成工程,例如现在生成在c:教材目录下,好了找到工程打开我们逐一个介绍他的用法插件安装时,WPS Office会将插件DLL注册(DllRegisterServer)到系统中。WPS Office启动时,将通过插件平台(管理插件的模块)加载插件。插件平台通过COM方式创建一个_IDTExtensibility2对象,然后调用_IDTExtensibility2.OnConnection。插件可以在OnConnection中做一些初始化操作,如添加菜单项、工具栏按钮等。OnConnection之后,OnStartupComplete将被调用,至此插件加载完成。WPS关闭时,插件平台先后调用OnBeginShutdown和OnDisconnection。目前,WPS Office插件平台不会调用插件的_IDTExtensibility2.OnAddInsUpdate方法。插件实现一个空的OnAddInsUpdate就可以了,即直接返回S_OK,应避免在其中编写其他代码,以免将来引起兼容问题。1.1Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) Set app = ApplicationEnd SubOnConnection方法一共带有4个参数。第一个参数Application是宿主程序对象;第二个参数是ConnectMode类型的枚举值;第三个和第四个参数目前没有使用,插件实现OnConnection时必须忽略这两个参数Private Enum ConnectMode ext_cm_AfterStartup = 0 ext_cm_Startup = 1 ext_cm_External = 2 ext_cm_CommandLine = 3End Enum其中,ext_cm_Startup和ext_cm_AfterStartup是插件平台加载COM插件时传入OnConnection的。ext_cm_External和ext_cm_CommandLine目前没有用到。a. ext_cm_StartupWPS启动时,插件平台会立即加载COM插件,调用OnConnection(Application, ext_cm_Startup)。b.ext_cm_AfterStartup用于安装插件过程。安装插件时,WPS Office插件平台会加载插件,并调用OnConnection(Application, ext_cm_AfterStartup),此时插件要做两件事情,即安装后的初始化以及加载初始化。如果插件安装以后不需要进一步的配置等初始化工作,那么对这个插件而言,不需要区分ext_cm_AfterStartup和ext_cm_Startup。一般情况下,插件会在OnConnection中添加菜单项或者工具栏按钮等功能入口。在WPS Office添加的菜单项或者工具栏按钮,分为“临时”和“持久”两种类型。顾名思义,带有“临时”属性的菜单项或工具栏按钮,在WPS Office重新启动以后就不存在了;带有“持久”属性的菜单项或工具栏按钮,在WPS Office重新启动以后,仍然存在。插件添加菜单项和工具栏按钮时,推荐使用“临时”的菜单项和工具栏按钮,在宿主程序关闭时,插件也不要调用API删除菜单或工具栏按钮。插件添加菜单项或工具栏按钮时,建议先检查这些菜单或按钮是否已经存在,以免重复添加。例如: Dim combar As CommandBar Dim cbtn As CommandBarButton Dim combarName As String Set app = Application For Each combar In app.CommandBars combarName = combar.Name If combarName = sky Then combar.Delete End If Next Set combar = app.CommandBars.Add(sky) Set cbtn = combar.Controls.Add(KSO.ksoControlButton) With cbtn .Caption = 插入图片 .FaceId = 1 .Style = ksoButtonIconAndCaptionBelow .ToolTipText = Look UP Sky End With1.2._IDTExtensibility2.OnStartupComplete插件平台加载插件过程中,会先后调用OnConnection和OnStartupComplete。如果插件需要在插件启动以后(OnConnection执行完之后)做一些事情,可以将这些工作放到OnStartupComplete中执行。大多数情况下,插件可以实现一个空的OnStartupComplete,返回S_OK即可。1.3._IDTExtensibility2.OnBeginShutdownWPS Office关闭过程中,插件平台会调用OnBeginShutdown,通知插件做清理工作,如保存配置、终止未完成的工作、释放系统资源等。OnBeginShutdown在OnDisconnection之前被调用。1.4._IDTExtensibility2.OnDisconnectionOnDisconnection和OnConnection相对应,插件在OnConnection中添加菜单或工具栏命令、注册事件通知,OnDisconnection则注销事件通知。Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) Set app = NothingEnd SubOnDisconnection带RemoveMode和custom两个参数。其中custom参数目前没有用到,插件忽略这个参数即可;第一个参数RemoveMode是ext_DisconnectMode类型的枚举值,如下所示:Private Enum ext_DisconnectMode ext_cm_AfterStartup = 0 ext_cm_Startup = 1 ext_cm_External = 2 ext_cm_CommandLine = 3End Enum目前只用到了ext_dm_HostShutdown。WPS Office关闭时,插件平台会调用插件的_IDTExtensibility2.OnDisconnection(ext_dm_HostShutdown, custum) 方法。前面推荐插件使用“临时”的菜单和工具栏按钮。使用“临时”菜单和按钮时,插件在处理ext_dm_HostShutdown过程中不需要删除菜单、按钮等项目。2.插件配置文件WPS Office插件的配置文件是一个符合一定命名规则的XML文件。插件配置文件必须和插件DLL放在相同的文件夹中。插件配置文件的文件名必须遵循“addon-name.app-name.lang.xml”这样的格式。a. addon-name插件模块的名称,必须和插件模块的文件名完全一致。如WpsAddonDemo.dll插件,addon-name为“WpsAddonDemo”。b. app-name插件支持的WPS模块,包括:wps、et、wpp、kso,其中kso表示支持WPS Office的所有模块。c. lang插件支持的语言版本,如1033、2052等。“0”表示支持所有语言。假如WpsAddonDemo.dll插件支持WPS Office的所有模块,支持简体中文,那么它的配置文件名称为“WpsAddonDemo.kso.2052.xml”。如果插件需要针对WPS Office的不同模块编写不同的配置文件,那么可以按照以上规则编写多个配置文件。插件平台优先使用精确匹配的插件配置文件,以WpsAddonDemo插件为例,WPS文字启动时,插件平台先查找名为“WpsAddonDemo.wps.2052.xml”的配置文件,若找不到则继续查找名为“WpsAddonDemo.kso.2052.xml”的配置文件,如果都找不到,则说明该插件不支持WPS文字。id=70D748C8-974D-44C0-8115-9072478A6009 version=234 type=comaddin name=插件示例 author=WPSdesc=WPS Office 插件简介 image=icon.jpg homepage=/addonshelp=loadimm=1updateitv=7/ksoplugin插件配置文件中至少要包含id、version、type、name四项数据。a.id插件id是插件COM组件的CLSID,WPS Office插件平台将根据id加载插件,获取_IDTExtensibility2接口。这里介绍个工具给你,/down/2285226/xuxux2006;选择库是工程生成.dll文件下面会说到。b.verion插件版本号使用Windows风格的命名方式,即主版本号子版本号修正版本号构建,如“9”。插件版本号会显示在插件平台对话框中。c.typetype必须为comaddin,说明插件DLL是一个COM组件。在插件平台对话框中看到的插件名称。e.loadimmWPS启动时是否立即加载插件,必须为“1”,表示立即加载插件。好我们打开C:教材点击regaddin.reg注册下,然后启动WPS

温馨提示

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

评论

0/150

提交评论