WPS二次開發(fā) 插件教材_第1頁
WPS二次開發(fā) 插件教材_第2頁
WPS二次開發(fā) 插件教材_第3頁
WPS二次開發(fā) 插件教材_第4頁
WPS二次開發(fā) 插件教材_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、二次開發(fā) 插件教材使用vb開發(fā)wps office插件使用vb開發(fā)wps office插件教程內(nèi)容簡介:wps office的插件由一個實現(xiàn)了特定接口的dll、一個xml配置文件以及插件本身需要的其他文件組成。wps office 插件dll實際上是一個實現(xiàn)了_idtextensibility2接口的com組件。 1. _idtextensibility2 插件dll要導出com要 office的插件由一個實現(xiàn)了特定接口的dll、一個xml配置文件以及插件本身需要的其他文件組成。wps office 插件dll實際上是一個實現(xiàn)了_idtextensibility2接口的com組件。_idtex

2、tensibility2介紹插件dll要導出com要求的dllcanunloadnow、dllgetclassobject、dllregisterserver和dllunregisterserver四個函數(shù),并實現(xiàn)_idtextensibility2接口。_idtextensibility2接口的定義在kingsoft add-in designer類型庫中,如果是c+在c:/program files/kingsoft/wps office personal/office6/ksaddndr.dll導入ksaddndr.dll就可以使用這個接口。在這里建議用官網(wǎng)的插件向?qū)晒こ踢@樣容易生成

3、dll文件:插件安裝時,wps office會將插件dll注冊(dllregisterserver)到系統(tǒng)中。wps office啟動時,將通過插件平臺(管理插件的模塊)加載插件。插件平臺通過com方式創(chuàng)建一個_idtextensibility2對象,然后調(diào)用_idtextensibility2.onconnection。插件可以在onconnection中做一些初始化操作,如添加菜單項、工具欄按鈕等。onconnection之后,onstartupcomplete將被調(diào)用,至此插件加載完成。wps關閉時,插件平臺先后調(diào)用onbeginshutdown和ondisconnection。目前,w

4、ps office插件平臺不會調(diào)用插件的_idtextensibility2.onaddinsupdate方法。插件實現(xiàn)一個空的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個參數(shù)。第一個參數(shù)application是宿主程序?qū)ο?;第二個參數(shù)是connectmode類型的枚舉值;第三個和第四個參數(shù)目前沒有使用,插件實現(xiàn)onconnection時必須忽略這兩個參數(shù)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插件,調(diào)用onconnection(application, ext_cm_startup)。b.ext_cm_afterstartup用于安裝插件過程。安裝插件時,wps office插件平臺會加載插件,并調(diào)用onconnection(application, ext_cm_afterstartup),此時插件要做兩件事情,即安裝后的初始化以及加載初始化。如果插件安裝以后不需要進一步的配置等初

7、始化工作,那么對這個插件而言,不需要區(qū)分ext_cm_afterstartup和ext_cm_startup。一般情況下,插件會在onconnection中添加菜單項或者工具欄按鈕等功能入口。在wps office添加的菜單項或者工具欄按鈕,分為“臨時”和“持久”兩種類型。顧名思義,帶有“臨時”屬性的菜單項或工具欄按鈕,在wps office重新啟動以后就不存在了;帶有“持久”屬性的菜單項或工具欄按鈕,在wps office重新啟動以后,仍然存在。插件添加菜單項和工具欄按鈕時,推薦使用“臨時”的菜單項和工具欄按鈕,在宿主程序關閉時,插件也不要調(diào)用api刪除菜單或工具欄按鈕。插件添加菜單項或工具

8、欄按鈕時,建議先檢查這些菜單或按鈕是否已經(jīng)存在,以免重復添加。例如: 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插件平臺加載插件過程中,會先后調(diào)用onconnection和onstartupcomplete。如果插件需要在插件啟動以后(onconnection執(zhí)行完之后)做一些事情,可以將這些工作放到onstartupcomplet

10、e中執(zhí)行。大多數(shù)情況下,插件可以實現(xiàn)一個空的onstartupcomplete,返回s_ok即可。1.3._idtextensibility2.onbeginshutdownwps office關閉過程中,插件平臺會調(diào)用onbeginshutdown,通知插件做清理工作,如保存配置、終止未完成的工作、釋放系統(tǒng)資源等。onbeginshutdown在ondisconnection之前被調(diào)用。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兩個參數(shù)。其中custom參數(shù)目前沒有用到,插件忽略這個參數(shù)即可;第一個參數(shù)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關閉時,插件平臺會調(diào)用插件的_idtextensibility2.ondisconnection(ext_dm_hostshutdown, custum) 方法。前面推薦插件使用“臨時”的菜單和工具欄按鈕。使用“臨時”菜單和按鈕時,插件在處理ext_dm_hostshutdown過程中不需要刪除菜單、按

13、鈕等項目。2.插件配置文件wps office插件的配置文件是一個符合一定命名規(guī)則的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的不同模塊編寫不同的配置文件,那么可以按照以上規(guī)則編寫多個配置文件。插件平臺優(yōu)先使用精確匹配的插件配置文件,以wpsaddondemo插件為例,wps文字啟動時,插件平臺先查找名為“wpsaddondemo.wps.2052.xml”的配置文件,若找不到則繼續(xù)查找名為“wpsaddondemo.kso.2052.xml”的配置文件,如果都找不到,則說明該插件不支持wps文

15、字。id=70d748c8-974d-44c0-8115-9072478a6009 version=234 type=comaddin name=插件示例 author=wpsdesc=wps office 插件簡介 image=icon.jpg homepage=help=loadimm=1updateitv=7/ksoplugin插件配置文件中至少要包含id、version、type、name四項數(shù)據(jù)。a.id插件id是插件com組件的clsid,wps office插件平臺將根據(jù)id加載插件,獲取_idtextensibility2接口。這里介紹個工具給你,選擇庫是工程生成.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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論