




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、二次開發(fā) 插件教材使用vb開發(fā)wps office插件使用vb開發(fā)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)到系統(tǒng)中。wps office啟動時,將通過插件平臺(管理插件的模塊)加載插件。插件平臺通過com方式創(chuàng)建一個_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、始化工作,那么對這個插件而言,不需要區(qū)分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執(zhí)行完之后)做一些事情,可以將這些工作放到onstartupcomplet
10、e中執(zhí)行。大多數情況下,插件可以實現一個空的onstartupcomplete,返回s_ok即可。1.3._idtextensibility2.onbeginshutdownwps office關閉過程中,插件平臺會調用onbeginshutdown,通知插件做清理工作,如保存配置、終止未完成的工作、釋放系統(tǒng)資源等。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插件的配置文件是一個符合一定命名規(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四項數據。a.id插件id是插件com組件的clsid,wps office插件平臺將根據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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲合作合同
- 工程裝修合同補充協議
- 合同和協議合同協議書
- 濟南護理職業(yè)學院《植物學實驗》2023-2024學年第二學期期末試卷
- 遼寧城市建設職業(yè)技術學院《服裝色彩學》2023-2024學年第二學期期末試卷
- 天津師范大學津沽學院《光電子電路設計》2023-2024學年第二學期期末試卷
- 重慶安全技術職業(yè)學院《生活適應的設計與教學》2023-2024學年第二學期期末試卷
- 上海健康醫(yī)學院《中小學數學課程標準與教材研究》2023-2024學年第二學期期末試卷
- 遼源職業(yè)技術學院《基礎寫作(一)》2023-2024學年第二學期期末試卷
- 黃河交通學院《自動化專業(yè)技能訓練》2023-2024學年第二學期期末試卷
- DeepSeek從入門到精通培訓課件
- 急性呼衰院前急救流程
- 部編版七年級語文下冊《第2課說和做》課件
- 養(yǎng)老服務信息化發(fā)展-深度研究
- 2024-2025學年第二學期學校總務工作計劃(附2月-6月安排表行事歷)
- 夫妻離婚協議書范本2024
- GB/T 3920-2024紡織品色牢度試驗耐摩擦色牢度
- 交管12123學法減分題庫(含答案)
- 2025年蘇州工業(yè)職業(yè)技術學院高職單招職業(yè)適應性測試近5年常考版參考題庫含答案解析
- 2025年南京旅游職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 23G409先張法預應力混凝土管樁
評論
0/150
提交評論