




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、VC2005 從開發 MFC ActiveX ocx控件到發布到.net網站的全部過程開篇語:最近在弄 ocx控件發布到網站上使用,就是用戶在使用過程中,自動下載安裝ocx控件。(此文章也是總結了網上好多人寫的文章,我只是匯總一下,加上部分自己的東西,在這里感謝所有在網上發表相關內容的朋友們。)ActiveX 控件用于Web的過程是將控件嵌入主頁中,用戶通過瀏覽器訪問該主頁時,將主頁中的控件下載,并在用戶機器上注冊,以后就可在用戶的瀏覽器上運行。控件下載一次后就駐留在用戶本地機器上,下次再訪問相同的主頁時,可不再下載該控件,而是直接運行用戶本地的控件。這里控件容器就是瀏覽器,用戶不需要通過瀏覽
2、器調用控件的屬性或方法。因此,開發面向Web的ActiveX 控件比開發桌面的控件還要簡單些,所復雜的是如何將該控件很好地嵌入主頁,使 用戶能正常瀏覽。下面介紹這個問題。一. 創建MFC ActiveX 項目1. 打開VS2005 新建MFC項目。這里我們取名為“ ActiveXDemo2.輸入項目名稱為“ ActiveXDemo”和項目位置。點擊“確定”按鈕,打開向導對話框WoSig n 免費提供的時間戳服務URL http:/timestamp.wosig n. com/timestamp時間戳服務非常重要,添加時間戳后,即使您的代碼簽名證書已經過期,但由于您的代碼 是在證書有效期內簽名的
3、,則時間戳服務保證了此代碼仍然可信,最終用戶仍然可以放心下載, 使得即使代碼簽名證書已經過期,您也無需重簽和重新發布已經簽名的代碼。3.選擇“控件設置”選項卡,具體設置可參考上圖。其它選項卡為默認設置。最后點擊“完 成”按鈕保存設置添加控件方法VC2005會為我們自動創建好 MFC ActiveX程序框架,我們只要給該 ActiveX控件添加方法 即可。現在我們給控件添加一個“AddFu n”方法,這個方法是將兩個數相加并返回結果。1. 點擊“視圖”,打開“類視圖”窗口S-=映射 壬窓和常量*登局函數和孌量 J Ac 11 ve KB em oLl b 悩 ActiveKD emo- Dkc
4、t ioE vs n+ s141CA.c 11 veMDe fhcApp+ : ' " f CA.c t i veXDe mcCtrZL(3 吒;Ckcti SDeihcProjPage2. 展開"ActiveXDemoLib ”項,選中"_DActiveXDemo”項。點擊鼠標右鍵,選擇"添加” 的“添加方法”like ti veKD7 OA-ctiveZIDe+JC Acti veXDem-jkp近轉到聲團:*lCActi¥tX&4mcCl轉到引用©-+令 CActi車瀏號定義匹)查找所有引用(按笑型篩選Q)V確加
5、方法I7初鳴性按守母順序排序 按對象類型排序崔) 按對象訪問排序電) 強對象英型分坦QJ)豈砂LONG3.打開添加方法向導窗口。因為我們是添加一個加法方法,所以我們設置的返回類型為型,方法名設為 AddFun,添加兩個 LONG類型參數 Add1,Add2。4.其它為默認設置,點擊“完成”按鈕完成添加方法。接下來我們打開“解決方案資源管理器"打開"ActiveXDemoCtrl.cpp "文件5. 打開代碼視圖,我們會發現VC2005已經為我們添加了一個“AddFun”方法,我們在方法內添加"return Add1 + Add2; ” 語句。打tu曲 用
6、場卑邛射 琢閆ifirr西bw;怖:一”遼1E.出:二 的. UrZ *F«HuaJL叫 QOIAEiyGtE已*gij.hEHZI工直 Etraji,h l4*"楓 1片*(> t *LthCl.mcv -11 r LJ打 亍山創兀堵gC*jrlIX TtL-d CjL=li!ral£Kia!9C<ril D -fiEx-dhiristv Or-apEi ekafLc* :、MFC ActiveX 安全問題:中提示無相關屬http:/localhost/xxx/xxx.htm中執行,而在 http:/127.0O1/xxx/xxx.htm性,需要設置
7、其初始化和腳本運行的安全性ActiveX 在遠程IE頁面上執行,需要實現安全接口。在 ATL 寫的 ActiveX 中,用 lObjectSafety 。http:/support.microsoft.cOm/kb/168371/e n-us在MFC寫的ActiveX 中,直接修改注冊表。http:/support.microsoft.eom/kb/161873/e n-usmfc實現的ocx,要在app實現文件中包括兩個文件:在ActivexDemo.cpp文件中實現以下方法壬三代碼現在控件就可以在自注冊時就注冊為安全控件了2、設置項目屬性將配置類型設置成靜態庫(.lib)+1通用厲性 日配
8、置屬t注日輕+ J規試C+理源皿常調CA背資MI中間目錄$ (Confignor alionJueE汕L文檔生成器F瀏覽信息 彈皺爭件1+目定義生成歩瞬F代碼分祈帝除時要刪降的擴展容 生咸日志文f牛繼率的項目揺性表 啟用托管増量生成配置類型皿匚的便用ATL的使用宇符集公共語言運行時支持全程序憂化obj ; *. ilk; ill; + . ill ; *. tlh;來一 Imp ; * . rsp;趴 ygc;, $ ClntDi r ) Bui 1 dLc g. him靜態庫(在靜態庫中'便用眥不使用ATL使用Unicode字苻集無益共吾言逗巧時支持無全程序憂化輸岀目錄捋定椅出文件目
9、錄的相對路徑;可以包含環境孌量.3、最后生成項目,ocx控件就產生了ActiveX 打包與發布在VS2005 或VS2008 安裝后發現路徑下有許多小工具,我對帶有Cert的文件比較感興趣。經過研究,發現是有關證書和簽名的,當然,該證書未被證書認證機構認可。下面列岀這些工具和我的使用心得。1。Makecert.exe -2。Cert2Spc.exe -3。Signcode.exe -證書創建工具發行者證書測試工具文件簽名工具(VS2008 帶的是signtool )一、ActiveX 發布步驟在這里簡單說明下,打包activeX 需要制作證書, 具體用到 makecert 、cert2spc
10、、signtool這三個VS提供的工具,工具在VS文件夾里面,以下制作過程需要在工具所在的文件夾下完成!1、單擊“開始"->"運行(R)"->輸入"cmd"-> 回車-> 進入到操作的控件所在的目錄(需要將上面所說的工具,和OCX控件放到一個文件夾下);2、創建 PVK文件(私人密匙文件),在命令行中輸入 "makecert -sk demo demo.pvk -n CN=XXXXXXX 公司",然后回車;sk-表示主題的密鑰容器位置,ss-主題的證書存儲名稱,n-證書頒發對象,r-證書存儲位置;3、
11、 創建CER文件(公司證書),在命令行中輸入 "makecert -sk demo.pvk demo.cer",然后回車,如圖8所示,若岀現"Successed" 提示,則會在E: demo目錄下生成demo.cer 文件;sk-表示主題的密鑰容器位置,is-頒發者的證書存儲名稱,n-證書頒發對象,ic-頒發者的證書存儲位置,-$-授權范圍(用于代碼簽名);4、 創建SPC測試軟件岀版商證明書,在命令行中輸入"cert2spc demo.cer demo.spc",然后回車;5、創建INF文件,用記錄本編輯以下信息:國匚代碼6、創建
12、CAB 文件,在命令行中輸入 "cabarc -s 6144 n demo.cab atl90.dll Polygon.dlldemo.inf" , -s選項表示在壓縮文件中保留用于代碼簽名的空間,n命令指定希望創建CAB文件,然后回車;7、 使用 Code Signing Wizard簽署一個 CAB文件,在控制臺輸入signtool signwizard進入到signtool 窗體中;8、 單擊"下一步(N )"按鈕,選擇要進行數字簽名的且已做成CAB包的文件demo.cab 文件;9、 選擇好CAB包后單擊“下一步(N )"按鈕,在選擇想
13、要的簽名類型里選擇"自定議(C)"并 單擊"下一步(N )"按鈕;10、 接下來單擊"從文件選擇(F)"按鈕,選擇剛剛制作的demo.cer ;11、在單擊“下一步(N )",然后選擇"CSP中的私鑰(K)";13、在“證書路徑中的證書"中選擇“證書路徑中的所有證書,包括根證書( C)",在“其它證書(可選)"中選擇"包括在以下 PKCS #7 證書(.p7b )文件中的證書(P):",并單擊“瀏覽(R)." 按鈕選擇demo.spc 文件,選擇
14、完后單擊 "下一步(N )"按鈕;14、接下來在彈出的"數據描述"窗口中輸入公司的名稱和網址并單擊"下一步(N )"按鈕;15 、現大部份工作都已完成,在接下來的一步當中是可選的操作,其作用只是為 CAB 加入時間 戳,此步驟完全可以不做,VeriSign: ;16 、完成,單擊 " 下一步( N)" 按鈕便可來到數字簽名向導的最后一步,即操作總覽,如圖26所示,單擊 "完成 " 按鈕便可大功告成;面是微軟代碼簽名證書 (.pvk/.spc) 簽名指南的演示本使用指南演示如何使用WoSign 代
15、碼簽名證書來給微軟代碼簽名 ,Thawte和 VeriSign 代碼簽名證書也是使用同樣方法,只是使用不同的時間戳 URL 。用戶在在線申請代碼簽名證書時會生成證書私鑰文件,如:myCert.pvk,而代碼簽名證書成功頒發后的證書文件為公鑰文件,如:myCert.spc ,又稱:軟件發行證書(SoftwarePublishing Certificate)代碼簽名證書一般都是采用公鑰和私鑰分離的兩個文件方式,適合于 DOS 命令行方式的代碼簽名。如果您您希望把代碼簽名證書導入到Windows 證書存儲區中,從而簡化簽名操作,請參考:不同證書格式轉換指南 。WoSign 代碼簽名證書的根證書鏈為:
16、UTN-USERFirst-Object- WoSign CodeSigning Authority使用微軟的 SignCode.exe 就可以對微軟的代碼進行簽名,如果您沒有此文件,點擊 這 里 下載。 Signcode.exe 可以使用 DOS 命令行方式實現簽名,我們推薦用戶使用數字簽名 向導方式,簡單方便。請注意:如果您開發的 ActiveX 為 IE 加載項,請先數字簽名每個 CAB 文件中的.dll和.ocx等文件,再把這些文件打包成.cab文件后再數字簽名.cab文件,以確保所 有 IE 加載項都被 IE 驗證和信任,否則會顯示 “未驗證 ”而可能影響正常運行。具體簽名向導過程如
17、下:(1) 運行 Signcode.exe , 要求您選擇需要簽名的文件, 支持:可執行文件 (*.exe; *.dll;*.ocx) ; Cabinet 打包文件 (*.cab) 和目錄文件 (*.cat) ,如下圖 1 所示 ( 如:TestSign.cab) ,請注意:如果簽名的文件已經有數字簽名,則會被新的簽名覆蓋:(2)點擊 下一步”后,如下圖2所示,會要求您選擇簽名類型”,缺省的 典型”簽名類型;請選擇自定義”簽名類型: 如下圖3所示,點擊 從文件選擇"簽名證書(公鑰文件),如:WotoneCS.spc 點擊 下一步"后,如下圖 4所示,會要求您選擇私鑰文件,如
18、:WotoneCS.pvk其他參數不用動:(5) 點擊 下一步”后,如下圖5所示,會提示要求輸入私鑰密碼:(6) 點擊下一步”后,如下圖6所示,會提示要求選擇散列算法(摘要算法、縮微圖算法),缺省為shal ,也可以選 md5下一步”即(7) 點擊 下一步”后,如下圖7所示,選擇哪些證書包括到數字簽名中,直接點擊 可,即選擇缺省的包括根證書:(8) 如下圖8所示,要求填寫該簽名代碼的功能描述,推薦一定要認真填寫,因為此信息將會在最終用戶下載此代碼時顯示,有助于最終用戶了解此代碼的功能以確定是否下載安裝。第一行描述”是指此代碼的功能文字描述,第二行“ Web位置”則讓最終用戶點擊文字描述來詳細了
19、解此代碼的功能和使用方法等,本演示中的“ Web位置"為WoTrust代碼簽名證書簡介頁面:(9) 點擊下一步”后,如下圖 9所示,選中 將時間戳添加到數據中”請使用WoSign 免費提供的時間戳服務URL : 時間戳服務非常重要,添加時間戳后,即使您的代碼簽名證書已經過期,但由于您的代碼是在證書有效期內簽名的,則時間戳服務保證了此代碼仍然可信,最終用戶仍然可以放心下載, 使得即使代碼簽名證書已經過期,您也無需重簽和重新發布已經簽名的代碼。(10) 點擊下一步”后,如下圖10所示,會提示已經完成數字簽名向導,點擊 示您輸入私鑰密碼,就完成代碼簽名證書的代碼簽名。完成后還會提2d正在完
20、成數字簽名問導已成功呢咸數宇筮名向辱-已指定下列設置,文件名利鑰文件m甕服務提供程序CSP類醴 戢列直法 證為路徑 浚有耳他證書內客描述訂E: C*rlT estSign. cab E : VCrlVrBycsr t2. spc EACtr I. kftykeyfi. pvk Mier Aloft Strong Cry ESA FULL包括證書路徑和根證節本一詢文件収用于滴示tfoTrut t上齒逼)山二云或二;|取消(11)現在,需要使用chktrust.exe來查驗已經簽名的代碼,chktrust.exe 文件已經打包在signtool.rar 中。進入 DOS命令提示符,并進入已經簽名的
21、文件所在目錄(女口:d:sign'TestCA.cab),鍵入命令: chktrust testcs.cab,則會顯示實際應用時在IE 瀏覽器下載頁面的情況,如下圖11所示,對于 Win XP操作系統,會顯示軟件名稱和發行者名稱,其中軟件名稱就是您在第(8)步輸入的描述,點擊此名稱就鏈接到您在第(8)步填寫的網址,而點擊發行者名稱,則會顯示您的簽名信息和時間戳信息。對于Win2000操作系統,則稍有不同,第1行的紅線部分就是時間戳記錄的簽名時的本地時間,請注意:此時間不是取簽名電腦的時間,而是提供時間戳服務的服務器計算岀來的簽名電腦設置的所在時區的本地時間。第1行藍色文字就是在第8步中
22、輸入的描述文字,點擊此藍色文字就可以訪問在第8步中輸入的Web描述頁面。第2行藍色文字則為該代碼的發行者,也就是代碼簽名證書的申請者(擁有者)(女口:深圳市沃通電子商務服務有限公司),點擊可以查看證書的詳細信息;第2行有紅色下劃線部分顯示發行商可靠性由WoSign Code Signing Authority驗證"就是此代碼簽名證書的證書頒發者。云Tmst ClLkTiii51 叭ilkty - 安全警告ts塑運訂戢歎件嗎?亠F顯"名師:本.CAB左件僅用于潢示骯玄口代倨器名證書F發行若:深圳市沃迺電子商務畏務有限公詞仝J更爹選項翅關辭勰蠶璃豔聽驕觀512)點擊是"
23、;或運行”則會提示 “ TestSign.cab: Succeeded表示代碼 TestSign.cab 簽名驗證有效,可以放到網站上了。請注意:簽名后的CAB文件放到網站上需要使用 object 方式。請注意:不能僅簽名 CAB文件,CAB包中所有DLL文件都要先簽名后再打包,再簽名 CAB文 件,否則IE瀏覽器會顯示為朱驗證的發行者”而影響正常使用,甚至殺毒軟件會認為是毒而被 刪除!如下圖所示的實際案例:/nv.- CQB/TLvadValletVez-si oil - 會人議釘專業履 - Tindars.,瞪勢科枝更藝掃毒程序社肉站需婁尿屈庫麗載顧廠叱訂蠡三三二.二三忑傑號注的笈行著戶-
24、耳的嚇二如4耳品 i Hti詢of CMBT, o如果您信任該網站和i劾曦項并比許運仃段加載理請里擊這里.I掃描結果 I文件病毒TTBraiiimiMimirmiriEii iiji111 mui irui iiii muTnBnTrMi昨 ii iil在 Web 頁中加入 ActiveX 控件在修改了 IE的安全設置后,依然不能調用控件的方法,需要將訪問的站點設置為受信站點”,則方能正常使用控件在<html> 和<head> 之間插入<!- saved from url=(0017)http:/localhost/ ->則在IE窗口上方不會彈出黃色提示條。
25、在HTML頁面中使用 ActiveX 控件包含三個基本操作: 將控件放入 HTML中;將該控件下 載給用戶;在用戶機器上安裝該控件。如果只是針對IE用戶,在HTML中插入ActiveX 控件就比較簡單;如果同時兼顧 IE和Netscape 用戶,則要做更多工作。大家知道,HTML文件由文本和各種標志(tags)組成,ActiveX 控件對于IE在HTML中的標志是v OBJECT >,該標記 有幾個重要的參數特性,它們是:1.ID :為控件提供一個標識名稱,為HTML代碼提供一種訪問該控件的方式。2.CLASSID :是該控件唯一的 UUID,告訴IE裝入哪個對象。如果使用已經開發好的控
26、件, 它的CLASSID 可以通過調用 Win95 或NT下的應用Regedit來查找。從開始菜單中運行該程 序,展開HKEY_CLASSES_ROOT 項,可以看到按字母順序排列的注冊表,找到需要使用的控件名,例如 WClnt ,展開時可看到一個 CLSID文件夾,里面就是該控件的CLASSID如果是自己用 VC 開發控件,該 UUID 可以在 ActiveX 控件項目中的 ODL (對象描述庫) 文件中找到;通過查看控件的類信息注釋來定位特定控件的 UUID ,例如,要找到 CMyControl 控件的 UUID ,則需要找到以下代碼:/ Class information for CMy
27、Controluuid (051C47481262 11D2 87C1 00A024D948FB),licensed,helpstring( “CmyControl Control ”), control uuid 后面括號中的內容就是該控件的 UUID 。3.CODEBASE :如果在用戶機器上沒有控件的當前版本,該參數告訴用戶瀏覽器在哪里可 找到要下載的控件和最新版本號 .當控件作了修改后,可以更改版本號強制用戶重新下載。4.PARAM :該標記用于設置控件的初始屬性值,它有兩個特性: Name 和 Value ,即屬性 名稱和屬性值。此外還有一些標記,如: Width 表示該控件所占的寬
28、度, Height 表示高度等,總體來說, 這樣一個插入控件的 HTML 代碼和插入 Java Applet 的 HTML 代碼非常相似。下面是一個嵌有 ActiveX 控件的 HTML 代碼示例:ID= “ CMyControl ”CLASSID= “ clsid:051C4748 1262 11D2 87C1 00A024D948FB ”CODEBASE=“ version=1,0,0,1WIDTH=400HEIGHT=200ALIGN=centerHSPACE=0VSPACE=0如果希望控件還能在 Netscape 中運行,除了 Netscape 需加裝插件外, HTML 也要加一 些附
29、加標記,下面的例子中 EMBED 段就是為 Netscape 加上的。如果使用 MFC 開發 OCX 控 件,則少數用戶第一次訪問時除了下載 OCX 文件外,還要下載相應的 MFC DLL ,下載量變大,CAB 文件。經過修改后的這時可將相關文件在服務器端打包成可以在客戶端自解壓安裝的HTML 代碼段如下:v ALIGN“ CENTER CLASSID=“ clsid:7BCA18C6 2178 11D2 87C1 00A024 D948FB ”WIDTH=“ 1200 ” HEIGHT= “ 900 ” ID= “ marquee ”CODEBASE=“ http:/218.168.188.
30、188/scadaweb/WClnt.cab # version=1,0,0,1>vEMBED ALIGN“=CENTERCLASSID=“clsid:7BCA18C6 2178 11D2 87C1 00A024D948FB”WIDTH=“ 1200 ” HEIGHT= “ 900 ” ID= “ marqueequot; ”CODEBASE=“ 88/scadaweb/WClnt.OCX version=1,0,0,1”TYPE=“ application/oleobject>”實時動態頁面的實現方案對實時動態頁面的要求多產生于一些要求自動更
31、新實時數據的應用中, 如電網監控、股市監 測等。具體要求是:用戶只需選取希望瀏覽的圖表,但無需介入操作, 該圖表就能根據實時數據 不斷更新,用戶總能觀察到最新情況。要實現上述功能, 結構上有兩種方案: 一種是設置一個中介服務器, 該服務器作為控件和后 臺系統信息交流的中介; 另一種是不設中介服務器, 但在提供實時數據的后臺服務器上留出供控 件通信用的數據接口, 控件可以直接從后臺服務器上定時獲得當前實時數據。 按數據提供方式分 也有兩種:一種是由客戶端定時向服務器發出請求, 指明需要的實時數據, 服務器收到請求后將 滿足請求的動態數據發送至相應客戶; 另一種是客戶端只請求一次, 服務器端便定時
32、將滿足請求 的實時數據傳到客戶端, 直到客戶更換要顯示的圖表或停止刷新。 上述各方案都有其優點和局限, 在應用中可考慮實際情況采用相應方案。工作流程為:用戶先從 Web 服務器上下載包含 ActiveX 控件的網頁,控件隨即在客戶機 上注冊運行, 并通過 Winsock 同中介服務器或直接同提供實時信息的網, 如股票信息網相連接, 定時取得動態實時數據, 并刷新顯示。 在這個體系中, 客戶有兩條線路獲得信息, 一條是和 Web Server 的連接,從這條線上用戶訪問主頁;另一條就是控件和后臺信息網的連接,從這條線路 上用戶可以訪問實時數據。后一條線路用 Winsock 建立,傳輸速度遠大于前一條線路,且控制 靈活、效率高,不和主頁下載爭資源。通過這條線路,用戶甚至可以傳送遠程控制信息實現遙控 操作。利用 MFC 開發 ActiveX 控件利用 VC5.0 開發的這種控件,功能可擴展性強,理論上獨立的 VC5.0 程序具有的功能, 該控件都能實現,例如控件直接繪制瀏覽器,可以使用 OpenGL 等圖庫,圖形圖像功能強大。 實時數據刷新頻率理論上可達毫秒級,用戶通過鼠標可以實現各類交互操
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國可伸縮乒乓球網格行業市場全景分析及前景機遇研判報告
- 2025年中國咖啡機清潔液行業市場全景分析及前景機遇研判報告
- 癌癥康復期用藥指南
- 中國防雷避雷產品行業市場深度分析及行業發展趨勢報告
- 2019-2025年中國定制酒行業市場深度分析及發展前景預測報告
- 網圍欄可行性研究報告
- 中國電動自行車電商行業發展監測及市場發展潛力預測報告
- 2025年中國豆腐行業市場深度分析及發展前景預測報告
- 起重安裝項目投資可行性研究分析報告(2024-2030版)
- 2025年 云南省觀光車駕駛-特種設備作業N2證考試練習題附答案
- 小學生匯報講課件
- 2025浙江嘉興市海寧市嘉睿人力招聘5人筆試參考題庫附帶答案詳解析版
- 2025年安徽蚌埠市龍子湖區東方人力資源有限公司招聘筆試參考題庫含答案解析
- 黨課課件含講稿:《關于加強黨的作風建設論述摘編》輔導報告
- GB/T 19023-2025質量管理體系成文信息指南
- 2025中考歷史高頻點速記大全
- 2025年特種設備作業人員氣瓶充裝P證考試題庫
- 多余物管理制度
- 2024北京朝陽區三年級(下)期末語文試題及答案
- 灌腸技術操作課件
- 電梯維保服務投標方案
評論
0/150
提交評論