VisualStudioc开发ActiveX控件及制作CAB包总结

上传人:沈*** 文档编号:97619805 上传时间:2022-05-27 格式:DOC 页数:31 大小:763.50KB
收藏 版权申诉 举报 下载
VisualStudioc开发ActiveX控件及制作CAB包总结_第1页
第1页 / 共31页
VisualStudioc开发ActiveX控件及制作CAB包总结_第2页
第2页 / 共31页
VisualStudioc开发ActiveX控件及制作CAB包总结_第3页
第3页 / 共31页
资源描述:

《VisualStudioc开发ActiveX控件及制作CAB包总结》由会员分享,可在线阅读,更多相关《VisualStudioc开发ActiveX控件及制作CAB包总结(31页珍藏版)》请在装配图网上搜索。

1、开发及测试环境:(1)开发环境:Visual Studio 2008 SP1cabsdk(下载地址:)(2) 测试环境:Win dows Server 2003 R2 SP2IE62、创建项目丿解决方ActrveXCAB (3个顶目)iHelloBossma+: j HelloBossmaSetup我这里创建了三个项目:(1) HelloBossma项目模板:Win dows 窗体控件库(2)HelloBossmaSetup项目模板:安装项目(3)Web :项目模板:ASP.NET 网站3、HelloBossma 项目dll。这个项目用于编写具体的控件,并生成安装文件所需要的(1 )添加用户控

2、件:秦加胡頊HelluDdisnu类黑腔:種板: Dfe-B-*b-aS Wsual C* 项XMLd-Web.可安装程序类童报表Windows Forms门报表向导本地数据库WPF刁本地数站库线存程序集信息立件!-常规四代码文件話调试器可视化工具代码Q光标女件 也搔口J基于服务的数据库数据曹类Reporting曽类关系團-1设冒文件Workflow耳數据集期图标文件型位通文件文本文件包样式表訂应用程序配置文件二应用程序蓿单文件用尸控件资课文件 也组件类自定义捋件可重用的训in加恥亩体控件名椒检HloB刘耐配皿8比cs逼加 | 取消 |(2)设计控件:/ HefoBo弗mafictiv锻 ts

3、T vHelloBossmaActiveX.cs 设计起始帀1 1 jlLkiui mibibhm ih aaMiBiBaiHiBaca hi * mmaiB ibi 1 舷杜 ESlI_ 1P! 11 11 13 : 11 11 1: 1i 11 :1 !1 !121 !11 :1戸当前时间:NnwTimel51添加Panel、GroupBox 、Label控件。NowTime 是一个Label控件,用于显示时间。 然后在控件对应的代码文件中编写程序:using System;using System.Collect ion s.Ge neric;using System.Comp onen

4、 tModel;using System.Draw ing;using System.Data;using System.Text;using System.Wi ndows.Forms;using System.R un time.I nteropServices;n amespace HelloBossma/ / Guid 将用作控件的 classid/ IObjectSafety的是用来标记可安全执行脚本的 ActiveX 控件/ Guid(636B8CE1-7512-464C-B63C-FC75BDCA21DB),ProgId(HelloBossma.HelloBossmaActive

5、X), ComVisible(true)public partial class HelloBossmaActiveX : UserControl, IObjectSafetyprivate const string _IID_IDispatch =00020400-0000-0000-C000-000000000046;private const string _IID_IDispatchEx =a6ef9860-c720-11d0-9337-00a0c90dcaa9;private const string _IID_IPersistStorage =0000010A-0000-0000-

6、C000-000000000046;private const string _IID_IPersistStream =00000109-0000-0000-C000-000000000046;private const string _IID_IPersistPropertyBag =37D84F60-42CB-11CE-8135-00AA004BB851;private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER =0x00000001;private const int INTERFACESAFE_FOR_UNTRUSTED_DATA =0x

7、00000002;private const int S_OK = 0;private const int E_FAIL = unchecked(int)0x80004005);private const int E_NOINTERFACE = unchecked(int)0x80004002);private bool _fSafeForScripting = true;private bool _fSafeForInitializing = true;public HelloBossmaActiveX()InitializeComponent();/ / 设置当前时间/ / public

8、void SetTime(string timeStr)this.label2.Text = timeStr;public int GetInterfaceSafetyOptions(ref Guid riid, ref int pdwSupportedOptions, ref int pdwEnabledOptions)int Rslt = E_FAIL;string strGUID = riid.ToString(B); pdwSupportedOptions =INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED

9、_DATA;switch (strGUID)case _IID_IDispatch:case _IID_IDispatchEx:Rslt = S_OK;pdwEnabledOptions = 0;if (_fSafeForScripting = true) pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;break;case _IID_IPersistStorage:case _IID_IPersistStream: case _IID_IPersistPropertyBag:Rslt = S_OK; pdwEnabledOptio

10、ns = 0; if (_fSafeForInitializing = true) pdwEnabledOptions =INTERFACESAFE_FOR_UNTRUSTED_DATA;break;default:Rslt = E_NOINTERFACE;break;return Rslt;public int SetInterfaceSafetyOptions(ref Guid riid,int dwOptionSetMask,int dwEnabledOptions)int Rslt = E_FAIL;string strGUID = riid.ToString(B);switch (s

11、trGUID)case _IID_IDispatch:case _IID_IDispatchEx:if (dwEnabledOptions & dwOptionSetMask) =INTERFACESAFE_FOR_UNTRUSTED_CALLER) &(_fSafeForScripting = true)Rslt = S_OK;break;case _IID_IPersistStorage:case _IID_IPersistStream:case _IID_IPersistPropertyBag:if (dwEnabledOptions & dwOptionSetMask) = INTER

12、FACESAFE_FOR_UNTRUSTED_DATA) &(_fSafeForInitializing = true)Rslt = S_OK;break;default:Rslt = E_NOINTERFACE;break;return Rslt;关于 IObjectSafety 的实现参考了: using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace HelloBossmaComImport, GuidAttribute(CB5

13、BDC81-93C1-11CF-8F20-00805F2CD064)InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)public interface IObjectSafetyPreserveSigint GetInterfaceSafetyOptions(ref Guid riid,MarshalAs(UnmanagedType.U4)ref int pdwSupportedOptions, MarshalAs(UnmanagedType.U4) ref intpdwEnabledOptions);PreserveSig

14、()int SetInterfaceSafetyOptions(ref Guid riid,MarshalAs(UnmanagedType.U4)int dwOptionSetMask,MarshalAs(UnmanagedType.U4) int dwEnabledOptions);这里还包含了一个可以被外部调用的方法,传进来一个字符参数,并显示出来:/ / 设置当前时间/ / public void SetTime(string timeStr)this.label2.Text = timeStr;3 )设置生成属性,勾选:为 Com 互操作注册应用程序生成*生成爭件调试资源引用路轻签名页

15、工冈直操作注册迈生成序列化程厚集(日;丽3(4 )生成项目,生成这两个文件:HelloBossma.dllHelloBossma.tlb是必须的,否则生成不成功。4、HelloBossmaSetup 项目这是一个安装项目,用来生成安装程序。(1 )在项目上点右键,【添加】- 【项目输出】,选择上边的 HelloBossma 项目(2 )在安装项目上点右键,属性Ml凶配置管理器3文件大小(乃P无限制防C自定义他);安装URKD;|http:/localhD5tyhellobossma/安装URL :貌似用于查找应用程序更新,具体看:这个目录最好是实际存在的,用来存放生成的安装文件,供客户端下载安

16、装。便输入一个吧。没有的话就随(3)添加卸载程序文件,修改文件名为Unin stall.exe拷贝文件 C:WindowsSystem32msiexec.exe添加到安装项目中,然后创建一个快捷方式。在【用户的 程序”菜单下边】添加一个文件夹HelloBossma ,将快捷方式拖动到这里边。艾件系塚(HetloBo ssni aSetup1J&其|解决方案资源管理器-解决方秦AC,., - X專目標计宜机上的丈毎亲蔬:名称应用程序文件夹 白口用户的翟序家单晶卸载控件一 J解决方案ActrveXCAB- (3个项目) .EiVAWebX厶 HelloBossma 厶用尸桌面.+ .第 Hello

17、Bossma-二 HellQBossnifiGetup 田检测到的依輟项i : il 1 : 1 : 1 -1 .J ;iU B岂 Uninstall.exe在卸载控件上点击右键,属性:(Name)卸载控件Argumentslx A%9S6A6-AE32-4B6C-91D&-97C636B(DescriptionFolderHelloBossmakon(无)Show 匚 nnclvsdscNormalTargetUninstaSLeKeTransitiveFalseWorkingFcrfder应用程序文件夹设置Arguments ,就是指定要卸载的程序,后面的 ProductCode 可以这样

18、获得:解决方案资源管理器-HelloBoSSnaM, * X|曲|韻瞬顏希B耳解决方-ActiveXCAB (3个项目) 申E;.Web i+j .上 HeHoBossiTidHelloEossmaSetupii丄I檢测到的依赖项 匀主输出来自HelloElossma(?S3)3 Uninstall.exe选中项目,然后鼠标放到右侧的属性”上,就可以看到 ProductCode 了:犀性-Sa X曰杂顶AddRemovePragramskon(无)Author0O5SMADescriptionDstectNewerlnstalledVersionTrueInstallAllUsersFatsK

19、eywordsLocalizationChinese (Simplified)ManufacturerBOSSMAMnuFacturerUrlPostBuildEventPreBuildEvert| ProductcodePraductNameHelloBossma5etupRem 口v亡False(4)最后生成项目5、制作CAB文件(1 )为了方便操作,可以将CABARC.EXE 添加到环境变量中:桌面上右击 我的电脑”属 性”高级”环境变量”系统变量”找到“Path”,在后边把CABARC.EXE所在的路 径添加上去,注意用分号隔开新添加的路径。(2 )准备好文件install.inf:

20、CAB安装配置文件HelloBossmaSetup.msi :安装程序文件in stall.i nf文件的内容:vers ionsig nature=$CHICAGO$Adva ncedlNF=2.0Setup Hooks hook仁hook1hooklrun=msiexec.exe /i %EXTRACT_DIR%HelloBossmaSetup.msi /qnrun : 般只需要修改这个就行了(3)执行 cabarc 命令桌面左下角 开始”运行”输入cmd,打开命令提示符工具,进入准备好的文件的目录, 执行命令:cabarc n HelloBossma.cab HelloBossmaSet

21、up.msi in stall.i nfE: xDenaMlct iueXCABSHaKeCABabarc n He lloBos.cab He lloBos&naSetup.fns i install L infNicrosoft Cabinet Tool - Uersion 100-0601 C03/18/975Copyright Microsoft Coip 199&-1997. fill eights i*Eserued.Cpeatiny new cabinet J lloSosna.cabJ with compiession fMSZlPJ :-一 adding HeLloBos&n

22、aEetup.m&iaddininstall.infConpleted successfully:公醉斑妄芈.显示“Completed successfully ” ,打开所在目录,就可以看到生成的文件了。6、部署到网站在网站中新建一个目录hellobossma ,将生成的cab文件拷贝到里边。新建一个网页,将控件添加到页面:VDOCTYPE html PUBLIC -/W3C/DTD XHTML 1.0 Tran sitio nal/EN http:/ /www.w3.org/TR/xhtml1/DTD/xhtml1-tra nsitio nal.dtdhtml xmln s=http:/w

23、ww.w3.org/1999/xhtmlfunction SetTime() var d = new Date();var vYear = d.getFullYear();var vMon = d.getMonth() + 1; var vDay = d.getDate();var vHour = d.getHours(); var vMin = d.getMinutes(); var vSec = d.getSeconds();document.HelloBossma.SetTime(vYear + - + vMon + - + vDay+ + vHour + : + vMin + : +

24、vSec)ActiveX 控件作为一个 object 添加到页面中, 其 classid 是在编写 HelloBossmaActiveX 类时定义好的Guid值,codebase 用来指示cab安装文件的路径,还可以设置宽度、高度。 另外其中文字受页面中字体样式的影响。因为我们的 ActiveX 控件没有签名,所以将测试站点加到 “本地 Intranet ”中或者 “可信站 点”中,并设置安全级别为 “低 ”。Internet寓规 安全 隔私丨内容丨连接|程序|高级选择要直看的区越或更改安全置告Interiit MSQMI 可信站点ilntr ant本ffi Intranet该区域适用于在傑的

25、Iiitran.t上 找到的所有岡站.该区域的安全級别E该区域的允许皱别:全部-.-提棋星小的安金措施和雪告提示-下载大畫数内容,且无提示运行-可以该行所有的活动內容-适用于细对信枉的站点 i-目定义级别1默认级别辺)1将所有区域重置为默认级别 1然后打开浏览器,提示安装,点击安装”稍等下,效果就出来了:点击按钮,就可以通过 javascript 设置ActiveX 控件中的时间了。C#如何在ActiveX 控件中调用javascript的函数,这里参考网上的例子介绍两种方法,虽然代码不一样,但是殊途同归。而且都使用了mshtml 。1、方法一(1 )在 VS 项目中添加 Com 对象引用:M

26、icrosoft Html Object Library(mshtml.tlb)NET COM |顶目|浏览|最逬|姐件名称越|类型库版本Microsoft H323 Service Provider 1.1.0Microsoft Help Data Wer/iws 1,0 T, 1 .QMicrosoft Help Visuals 1.0l.D路径C:WINDOW5systenn32h323nnsp.dll C;program FilesCommon FilesMicro; C:Program FilesiComman FiieslMicro*C:WINDOW5system32irTisht

27、nil,tlbMicrosoft IMAPI2 B出亡 Functionality 1 0 Microsoft IMAPI2 File System Ima, 1.0 Microsoft Information 匚rnd IE Hef.1.0C;WINDOWSsyJtem 32imapi2 dllC: WINDOWSsystenn32imapi2F5, dllC: WINDOWS5y$tenn32icar(ije. dllMicrosoft HTML Object Library4.0(2) ActiveX 中公开一个方法,传递window 对象到ActiveX 中ActiveX中公开一个方法

28、,接受传递进来的参数/ III 将window 对象传递进来/ / vparam n ame=objThe obj.public void SetHtml(object obj)html = (mshtml.HTMLWi ndow2Class)obj;在页面中调用ActiveX的公开方法,传递当前window对象进去: win dow. onl oad = fun cti on() docume nt.HelloBossma.SetHtml(this);(3 )在ActiveX 控件中添加一个按钮,当点击这个按钮时,触发页面中的javascript匚制作ActiXS件实例-1当前时间:NowT

29、imeCall Javascript点击按钮的方法:/ / 调用页面 Javascript/ / vparam n ame=se nder/ vparam n ame=eprivate void butt on 1_Click(object sen der, Even tArgs e)html.execScript(CallByActiveX();, javascript);现在卸载掉原来的ActiveX控件,安装新的控件,打开页面,点击按钮,看到如下效果,说明成功。弋制ActiveX控件实例-1当前时闾:NowTimeCall Javascrip!显示当前时间|调用javascript时还可

30、以传递参数,这里不做演示了,自己可以试一下。参考:http:/www.c 2、方法二(1 )在 VS 项目中添加 Com 对象引用:Microsoft Html Object Library(mshtml.tlb) 和第一种方法相同。(2 )用 c# 实现两个 COM 类,lOleClie ntSite和 lOleCo nta in erusing System;using System.Collect ion s.Ge neric;using System.Text;using System.R un time.I nteropServices; namespace HelloBossmaC

31、omImport,Guid(00000118-0000-0000-C000-000000000046),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)public interface IOleClientSitevoid SaveObject();void GetMoniker(uint dwAssign, uint dwWhichMoniker, object ppmk);void GetContainer(out IOleContainer ppContainer);void ShowObject();void OnShowWindo

32、w(bool fShow);void RequestNewObjectLayout();ComImport,Guid(0000011B-0000-0000-C000-000000000046),InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)public interface IOleContainervoid EnumObjects(In, MarshalAs(UnmanagedType.U4) int grfFlags,Out, MarshalAs(UnmanagedType.LPArray) object ppenum

33、);void ParseDisplayName(In, MarshalAs(UnmanagedType.Interface) object pbc,MarshalAs(UnmanagedType.BStr) string pszDisplayName,Out, MarshalAs(UnmanagedType.LPArray) int pchEaten,Out, MarshalAs(UnmanagedType.LPArray) object ppmkOut);void LockContainer(In, MarshalAs(UnmanagedType.I4) int fLock);( 3 )在

34、ActiveX 中编写 CallJavascript 方法:/ / 调用 Javascript/ / The filenames.private void CallJavaScript(string param)/ 反射获取当前的控件的 ClientSiteType typeIOleObject = this.GetType().GetInterface(IOleObject, true);object oleClientSite = typeIOleObject.InvokeMember(GetClientSite,BindingFlags.Instance | BindingFlags.I

35、nvokeMethod | BindingFlags.Public,null,this,null);/ 获取 ContainerIOleClientSite oleClientSite2 = oleClientSite as IOleClientSite;IOleContainer pObj;oleClientSite2.GetContainer(out pObj);/ 参数数组object args = new object1;args0 = param;/ 获取页面的 Script 集合IHTMLDocument pDoc2 = (IHTMLDocument)pObj;object scr

36、ipt = pDoc2.Script;try/ 调用 JavaScript 方法 OnScaned 并传递参数,因为此方法可能并没 有在页面中实现,所以要进行异常处理script.GetType().InvokeMember(ShowNowTime,BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public,null,script,args);catch 点击按钮时的操作 :/ / 调用 Javascript/ / / private void button1_Click(object sender, Even

37、tArgs e)CallJavaScript(this.label2.Text);( 4 )网页中的 javascriptfunction ShowNowTime(nowtime) alert( 当前时间 : + nowtime);卸载原来的 ActiveX 控件,重新安装,实际效果:-c制作虹tiv収控件实例-i当前时间:2010-5-30 2W29Call Javascript显示当前时间1、更新ActiveX 的版本:(1 )在 ActiveX修改为1.0.1.0项目上点右键,属性,应用程序,程序集信息,最初的版本是1.0.0.0(2 )修改控件,以区别1.0.0.0 版本,修改 V1.

38、0.0 为V1.0.1 4丄= a I性兀占二遊件卖闽二诃一亍厂-OI iI I 当前时间:NowTimenCall Javflscripil(3 )然后重新生成。2、修改安装程序(1 )添加注册表项在项目上点右键,视图,注册表:衢 I0bject5aFety.es 旳 IOleClientStexs刃iu检测至:主输出三t UninwtN生成 重新生成(或文件茶毓旧视D(邂)k注册表添加吵文件类型(D安装用户界面(U)卸載自定义操作(聖切(D启动案件X移除侧重命名在 HKEY_CLASSES_ROOT 下创建 CLSID/ActiveX 的 GUID/InstalledVersionl在In

39、stalledVersion下新建字符串值,修改字符串的值为” 1,0,1,0 ”,注意:删除名称中的值,自动会显示“默认值)”,这样才能设置注册表中默认值,不要自己输入默认值”。玲目标计算机上的隹甬条一名称I宿白二HKEY_CLAS5ES_ROOT强|(跌认值)j自口 O严r-! 2J 世笳田 1 孕&住瞄址巧75亦临iDB)i(2 )修改安装程序版本T S3 XHelloBossniaSetup部鄴顶目属性|麗篡辰AddRefTicveProgramsIcon(无)AuthorBOS5MADeec riptionDetect Never Inst alfedversionTrueInsta

40、llAIlLfsersFalseKe 阳 ordsLocadizdtionChinese Simplified)ManufacturerBO5SWAManufcturerUrlPostBuildEventPreBuildEwentProdu ct 匚oTelDBD6F4-SEE7-4a9F-G3OD-10A0F027B8ProductNameHelloBossmaSetupRemovePre viaus Vefsio nmTrueRunPostEuildEvent成功生成时Searchpath5iijjed:SupportPhoneSupportUrlTargetPltFormX36Title

41、HellaBossmaSetupUpgradeCade5、最终效果刷新页面,提示安装新的版本,直接安装就好了。厂C制作枪t讹X控件实例-V1.01当前时间:2010-6-6 12:35:54Call Javascript显示当前时间测试ActiveX 控件在新版操作系统上运行的问题,并提出解决的办法。主要是ActiveX 程序兼容性和CAB文件的安装问题。我在Vitual PC 上安装了 Windows 7 ,并且使用IE8浏览器。1、测试环境: Win dows 7 + IE82、修改之前,直接访问页面看看,发现出错了:显示当前时问出错行:docume nt.HelloBossma.SetT

42、ime(vYear +“- ” + vMon +- ” + vDay + ”+ vHour +“ : ”+ vMin +“ : ”+ vSec)然后到控制面中没有找到安装的ActiveX程序,结合出错行,大致得出结论:ActiveX没有安装成功!3、修改文件 in stall.i nf: versio nsig nature=$CHICAGO$Adva ncedlNF=2.0Setup Hookshook仁hooklDeployme ntIn stallScope=mach inehook1run=%EXTRACT_DIR%ru n.bat新加Deployment,关于这个项目看:http:/

43、msd n. n-us,VS.85).aspxInstallScope=machine我这里只能用这个,改成user无法安装成功,原因未知。另外在vista以后的版本只能执行cab中的文件了,所以 msiexec转移到了 bat中执行,添加一个bat文件。run .bat:set CURDIR=%cd%msiexec.exe /i %CURDIR%HelloBossmaSetup.msi /qn4、制作CAB包重新制作CAB包,添加一个run .bat :cabarc n HelloBossma.cab HelloBossmaSetup.msi in stall.i nf run. bat5、

44、在浏览器安装输入网址,提示安装,然后出现命令运行框,然后消失。如果安装成功,会出现控件界面。f制作ActiveX控件实例-VL0.1当前时间! 2010-6-8 21.49.35显示肖前时间Cali JavasenptKi1I 11 m 1I r I R i11 I r r I f 1“ i r 11 “ 血 ii6、一个兼容性问题这时候会发现,浏览器左下角有javascript 错误,同时点击Call Javascript发生异常。无法耨类型为Syrtem._ComObject的COM对暮强畴换为类类型 |rhtml.HTMLWmdow2C:iasr “ 逬入 CLR 目不支持 IProvi

45、deClassInfo 或没有注册饪何互操 柞程库集的COM用fW将包装在类型中.这种类型前实奶能强畴换为任何其他 类;不过,只要葩COM绢阵支持对接口 DD的Queryinterface谓用f就能将这些实例强轴换 为接口.192.168.1,107/fr 27代码:0字符:13UR1: httpVJ/192r16S.1.102/无法将类型为 “Systerm._ComObject ” 的COM对象强制转换为类类型“ mshtml.HTMLWindow2Class 。在XP、Windows Server 2003中都没有问题, Windows 7上出现问题,可能是权限设置问题。按照上边的提示,

46、找到出现问题的地方:Default.aspx:win dow. onl oad = fun cti on() docume nt.HelloBossma.SetHtml(this);;HelloBossmaActiveX.espublic void SetHtml(object obj)问题出在这里,类型转换的问题html = (mshtml.HTMLWi ndow2Class)obj;按照提示,我们可以把它转换为接口试试,在网上找到了HTMLWi ndow2Class的定义,public class HTMLWi ndow2Class : System._ComObject,MSHTML.I

47、HTMLFramesCollectio n2, MSHTML.IHTMLWi ndow2, mshtml.IHTMLWi ndow3, mshtml.IHTMLWi ndow4, mshtml.DispHTMLWi ndow2, mshtml.HTMLWi ndowEve nts_Eve nt, mshtml.HTMLWi ndowEve nts2_Eve nt, mshtml.HTMLWi ndow2private mshtml.lHTMLWi ndow2 html = null; public void SetHtml(object obj)html = obj as mshtml.IHTMLWi ndow2;如果你需要其它的方法,换换接口试试。本文引自:http:/blog.bossma.c n/dot net/visual-studio-2008-csharp-activex-summary-1/经过测试,IHTMLWindow2定义了 execScript ,所以修改SetHtml 为:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!