WPS二次开发 插件教材.doc

上传人:仙人指路1688 文档编号:2388899 上传时间:2023-02-17 格式:DOC 页数:7 大小:252KB
返回 下载 相关 举报
WPS二次开发 插件教材.doc_第1页
第1页 / 共7页
WPS二次开发 插件教材.doc_第2页
第2页 / 共7页
WPS二次开发 插件教材.doc_第3页
第3页 / 共7页
WPS二次开发 插件教材.doc_第4页
第4页 / 共7页
WPS二次开发 插件教材.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《WPS二次开发 插件教材.doc》由会员分享,可在线阅读,更多相关《WPS二次开发 插件教材.doc(7页珍藏版)》请在三一办公上搜索。

1、二次开发 插件教材使用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组件。_IDTEx

2、tensibility2介绍插件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就可以使用这个接口。在这里建议用官网的插件向导生成工程这样容易生成

3、dll文件:插件安装时,WPS Office会将插件DLL注册(DllRegisterServer)到系统中。WPS Office启动时,将通过插件平台(管理插件的模块)加载插件。插件平台通过COM方式创建一个_IDTExtensibility2对象,然后调用_IDTExtensibility2.OnConnection。插件可以在OnConnection中做一些初始化操作,如添加菜单项、工具栏按钮等。OnConnection之后,OnStartupComplete将被调用,至此插件加载完成。WPS关闭时,插件平台先后调用OnBeginShutdown和OnDisconnection。目前,W

4、PS 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) S

5、et 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是插件平台

6、加载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),此时插件要做两件事情,即安装后的初始化以及加载初始化。如果插件安装以后不需要进一步的配置等初

7、始化工作,那么对这个插件而言,不需要区分ext_cm_AfterStartup和ext_cm_Startup。一般情况下,插件会在OnConnection中添加菜单项或者工具栏按钮等功能入口。在WPS Office添加的菜单项或者工具栏按钮,分为“临时”和“持久”两种类型。顾名思义,带有“临时”属性的菜单项或工具栏按钮,在WPS Office重新启动以后就不存在了;带有“持久”属性的菜单项或工具栏按钮,在WPS Office重新启动以后,仍然存在。插件添加菜单项和工具栏按钮时,推荐使用“临时”的菜单项和工具栏按钮,在宿主程序关闭时,插件也不要调用API删除菜单或工具栏按钮。插件添加菜单项或工具

8、栏按钮时,建议先检查这些菜单或按钮是否已经存在,以免重复添加。例如: 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 = comb

9、ar.Controls.Add(KSO.ksoControlButton) With cbtn .Caption = 插入图片 .FaceId = 1 .Style = ksoButtonIconAndCaptionBelow .ToolTipText = Look UP Sky End With1.2._IDTExtensibility2.OnStartupComplete插件平台加载插件过程中,会先后调用OnConnection和OnStartupComplete。如果插件需要在插件启动以后(OnConnection执行完之后)做一些事情,可以将这些工作放到OnStartupComplet

10、e中执行。大多数情况下,插件可以实现一个空的OnStartupComplete,返回S_OK即可。1.3._IDTExtensibility2.OnBeginShutdownWPS Office关闭过程中,插件平台会调用OnBeginShutdown,通知插件做清理工作,如保存配置、终止未完成的工作、释放系统资源等。OnBeginShutdown在OnDisconnection之前被调用。1.4._IDTExtensibility2.OnDisconnectionOnDisconnection和OnConnection相对应,插件在OnConnection中添加菜单或工具栏命令、注册事件通知,

11、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

12、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过程中不需要删除菜单、按

13、钮等项目。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等。“

14、0”表示支持所有语言。假如WpsAddonDemo.dll插件支持WPS Office的所有模块,支持简体中文,那么它的配置文件名称为“WpsAddonDemo.kso.2052.xml”。如果插件需要针对WPS Office的不同模块编写不同的配置文件,那么可以按照以上规则编写多个配置文件。插件平台优先使用精确匹配的插件配置文件,以WpsAddonDemo插件为例,WPS文字启动时,插件平台先查找名为“WpsAddonDemo.wps.2052.xml”的配置文件,若找不到则继续查找名为“WpsAddonDemo.kso.2052.xml”的配置文件,如果都找不到,则说明该插件不支持WPS文

15、字。id=70D748C8-974D-44C0-8115-9072478A6009 version=1.0.0.1234 type=comaddin name=插件示例 author=WPSdesc=WPS Office 插件简介 image=icon.jpg homepage=help=loadimm=1updateitv=7/ksoplugin插件配置文件中至少要包含id、version、type、name四项数据。a.id插件id是插件COM组件的CLSID,WPS Office插件平台将根据id加载插件,获取_IDTExtensibility2接口。这里介绍个工具给你,选择库是工程生成

16、.dll文件下面会说到。b.verion插件版本号使用Windows风格的命名方式,即主版本号子版本号修正版本号构建,如“1.1.0.29”。插件版本号会显示在插件平台对话框中。c.typetype必须为comaddin,说明插件DLL是一个COM组件。d.name在插件平台对话框中看到的插件名称。e.loadimmWPS启动时是否立即加载插件,必须为“1”,表示立即加载插件。好我们打开C:教材点击regaddin.reg注册下,然后启动WPS他会弹出一句话:这句话就是插件平台加载插件过程中,会先后调用OnConnection和OnStartupComplete。如果插件需要在插件启动以后(OnConnection执行完之后)做一些事情,可以将这些工作放到OnStartupComplete中执行。大多数情况下,插件可以实现一个空的OnStartupComplete。好了,我们跑下程序吧,点击工程,生成.dll文件,让后用刚下载的getClsid.exe文件生成id,复制到插件配置文件中,保存,让后启动WPS找到配置文件.xml安装恭喜你,第一个插件做成了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号