VS2012.C#开发ActiveX组件流程以及注意事项v1.0

  • 格式:docx
  • 大小:2.50 MB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#开发ActiveX组件流程以及注意事项

唯笑志在

QQ群:54256083

ITER职业交流群:141588103

软件破解技术群:52598922

目录

C#开发ActiveX组件流程以及注意事项 (1)

一.前言 (2)

二.开发环境 (2)

三.组件开发过程 (2)

3.1 新建“MyActiveX”项目 (2)

3.2 在ActiveXControl组件类上增加属性和方法 (3)

3.3 增加客户端信任代码 (5)

3.4修改AssemblyInfo.cs 文件 (9)

3.5 修改ActiveXControl项目属性 (9)

四.ActiveX控件的打包发布 (11)

4.1 添加“安装和部署”工程 (12)

4.2 添加项目主输出 (13)

4.3 设置Register 属性为vsdrpCOM (13)

4.4 查看是否注册了ActiveX组件 (14)

五.测试和加载ActiveX过程 (15)

5.1 建立Web 应用程序项目 (15)

5.2 测试结果 (16)

5.3 IE设置 (17)

六.自动安装ActiveX (19)

6.1 打包cab安装包 (19)

6.2 自动安装 (21)

七.引用程序设计说明 (22)

一.前言

ActiveX 控件以前也叫做OLE 控件或OCX 控件,它是一些软件组件或对象,可以将其插入到WEB 网页或其它应用程序中。使用ActiveX 插件,可以轻松方便的在Web 页中插入多媒体效果、交互式对象以及复杂程序等等。

通常使用MFC或VB 开发ActiveX 控件,本文章来讨论Microsoft Visual Studio 开发工具实现开发ActiveX组件整个过程。在开发过程中有些注意事项和细节需要注意。

二.开发环境

开发工具:VS2012

操作系统:Windows 8.1

.NET版本:2.0及以上版本

开发语言:C#

三.组件开发过程

3.1 新建“MyActiveX”项目

把项目里默认建立的类库删除掉。新建“用户控件”,并且命名为“ActiveXControl”。如下图:

图 3.1-1 项目组件

3.2 在ActiveXControl组件类上增加属性和方法

[ComVisible(true)] //允许进行COM注册

[Guid("C341DFF3-BA35-4AA4-8FD1-EB7715F75E86")] //标识在注册表中唯一的GUID码。

[ClassInterface(ClassInterfaceType.AutoDual)] //标识为某个类生成的类接口的类型。

public partial class ActiveXControl : ObjectSafety

{

public ActiveXControl()

{

InitializeComponent();

}

///

/// 组件本身内部的事件,并把信息显示在组件的Label上。

///

///

///

private void button1_Click(object sender, EventArgs e)

{

bel1.Text = "单击成功";

}

///

/// 这是一个公开的方法,供网页的JAVASCRIPT调用的,进行交互。

///

public void Test()

{

label1.Text = "测试成功";

}

}

在ActiveXControl组件中入一个Button和Label控件,Button的单击事件对应着button1_Click 事件函数,并且改变Label的Text属性,并且改变ActiveXControl的背景颜色。如下图:

图3.2-1 组件界面

注:可以在菜单“工具”中的“创建GUID”中创建唯一的GUID码,与类的[Guid("C341DFF3-BA35-4AA4-8FD1-EB7715F75E86")]标识有关。如下图:

图3.1-2 创建GUID码

注:必须在组件类上标识[Guid("C341DFF3-BA35-4AA4-8FD1-EB7715F75E86")]属性,因为有可能每次生成项目的时候,这个GUID都会改变,对于应用系统来讲,最好是固定的,这样就不需要重新部署了。

3.3 增加客户端信任代码

为了让ActiveX 控件获取客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口,先创建该接口,并且定义该接口中方法,如下代码。(注:不能修改该接口的GUID 值)。

[ComImport, Guid("4A359FBB-C9A4-494E-B048-AC068DB4FCB2")]

[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]

public interface IObjectSafety

{

[PreserveSig]

int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions);