欢迎来到天天文库
浏览记录
ID:27499615
大小:177.50 KB
页数:9页
时间:2018-12-04
《如何使用c++开发wps office插件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何使用C++开发WPSOffice插件WPSOffice的插件由一个实现了特定接口的DLL、一个XML配置文件以及插件本身需要的其他文件组成。WPSOffice插件DLL实际上是一个实现了_IDTExtensibility2接口的COM组件。1._IDTExtensibility2插件DLL要导出COM要求的DllCanUnloadNow、DllGetClassObject、DllRegisterServer和DllUnregisterServer四个函数,并实现_IDTExtensibility2接口
2、。_IDTExtensibility2接口的定义在KingsoftAdd-InDesigner类型库中,导入ksaddndr.dll就可以使用这个接口。#import"C:ProgramFilesKingsoftWPSOfficePersonaloffice6ksaddndr.dll"named_guids,raw_interfaces_onlyinterface_IDTExtensibility2:IDispatch{virtualHRESULT__stdcallOnConnection(/*
3、[in]*/IDispatch*Application,/*[in]*/enumext_ConnectModeConnectMode,/*[in]*/IDispatch*AddInInst,/*[in]*/SAFEARRAY**custom)=0;virtualHRESULT__stdcallOnDisconnection(/*[in]*/enumext_DisconnectModeRemoveMode,/*[in]*/SAFEARRAY**custom)=0;virtualHRESULT__stdcal
4、lOnAddInsUpdate(/*[in]*/SAFEARRAY**custom)=0;virtualHRESULT__stdcallOnStartupComplete(/*[in]*/SAFEARRAY**custom)=0;virtualHRESULT__stdcallOnBeginShutdown(/*[in]*/SAFEARRAY**custom)=0;};插件安装时,WPSOffice会将插件DLL注册(DllRegisterServer)到系统中。WPSOffice启动时,将通过插件平台(管
5、理插件的模块)加载插件。插件平台通过COM方式创建一个_IDTExtensibility2对象,然后调用_IDTExtensibility2.OnConnection。插件可以在OnConnection中做一些初始化操作,如添加菜单项、工具栏按钮等。OnConnection之后,OnStartupComplete将被调用,至此插件加载完成。WPS关闭时,插件平台先后调用OnBeginShutdown和OnDisconnection。目前,WPSOffice插件平台不会调用插件的_IDTExtensibil
6、ity2.OnAddInsUpdate方法。插件实现一个空的OnAddInsUpdate就可以了,即直接返回S_OK,应避免在其中编写其他代码,以免将来引起兼容问题。1._IDTExtensibility2.OnConnectionvirtualHRESULT__stdcallOnConnection(/*[in]*/IDispatch*Application,/*[in]*/enumext_ConnectModeConnectMode,/*[in]*/IDispatch*AddInInst,/*[in]
7、*/SAFEARRAY**custom);OnConnection方法一共带有4个参数。第一个参数Application是宿主程序对象;第二个参数是ext_ConnectMode类型的枚举值;第三个和第四个参数目前没有使用,插件实现OnConnection时必须忽略这两个参数。ext_ConnectMode定义了4个常量值,如下所示。enumext_ConnectMode{ext_cm_AfterStartup=0,ext_cm_Startup=1,ext_cm_External=2,ext_cm_Com
8、mandLine=3};其中,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_AfterS
此文档下载收益归作者所有