• web调用winform控件的实现ActiveX控件


    ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果、交互式对象以及复杂程序等等。
    在Visual Studio 2008开发环境中,可以使用Windows控件库项目实现ActiveX控件的开发,但是需要对项目做一些必要的设置。下面就来看看如何使用Windows控件库项目开发一个ActiveX控件。首先创建一个应用程序解决方案,并添加一个Windows控件库项目:
    更改“项目属性-应用程序-程序集信息”设置,勾选“使程序集 COM 可见”:

    更改“项目属性-生成”设置,勾选“为 COM Interop 注册”(注意,此处如果实在debug状态下修改的,那在调到release状态下还需要再设置一次):
    http://images.cnblogs.com/cnblogs_com/yilin/WindowsLiveWriter/CActiveX_13F30/clip_image006_2.jpg
    修改AssemblyInfo.cs文件,添加[assembly: AllowPartiallyTrustedCallers()]项(需要引用System.Security名称空间): 

    C# code

    编码实现

    按照开发Windows用户控件一样的思路完成该控件的开发,本例中主要实现了两个业务功能,一个是提供一个公共方法,用于读取USBKey中保存的签名证书,保存到本地C盘根目录下,并返回操作信息;另一个业务功能提供UI界面,包括一个Button控件和一个Label控件,Button控件的Click事件调用前面提供的那个方法,并将返回信息显示到Label控件上。这样做可以达到两个目的,其一,ActiveX控件提供公共方法供B/S程序直接调用,从后实现业务功能;其二,ActiveX控件可以提供B/S程序UI界面,通过响应B/S程序中对UI的操作事件实现业务功能。
          完成控件开发后,为了使该用户控件作为一个ActiveX控件进行使用,还需要做以下修改:
          首先,为控件类添加GUID,这个编号将用于B/S系统的客户端调用时使用(可以使用 工具-创建GUID 菜单创建一个GUID): 

    C# code

    Guid("4A44CF4E-F859-4328-AA22-3E9D7AFFF1AB")]

    public partial class Hello : UserControl

    {

    其次,为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能修改该接口的GUID值): 

    C# code

    编码实现

      然后在控件类中继承并实现该接口:

    C# code

    编码实现

    然后怎么部署的我想你应该知道的!!

    我们使用 工具—〉OLE/COM对象查看器 查看,如图:

    可以看到,我们写的控件已经被正确识别为COM组件。现在,我们已经可以像使用其它ActiveX控件一样在网页中显示了。在HelloWorld.Demo点击鼠标右键,如图:

    选择Copy HTML <object> Tag to Clipboard,可以将代码拷入剪贴板。


    <body bgcolor=’#223344’>
    <object id="helloworld" 
       classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96">
    </object>
    </body>

    http://www.iwms.net/upload/2006_05/06053012333489.zip

  • 相关阅读:
    转载别人(ZZ)创建要素集
    CAD转化为Shp
    VBS学习
    3度带/6度带
    头文件学习,GEOTIFF
    arcmap vba 生成3维侧棱 以及 createfeature与createfeaturebuffer的区别
    另类
    幸福人生讲座(七):怎样引导孩子立志
    幸福人生讲座(四):孝道与仁爱是根本
    幸福人生讲座(二):人生怎样才能幸福?
  • 原文地址:https://www.cnblogs.com/sung/p/2873627.html
Copyright © 2020-2023  润新知