C#.NET ActiveX控件的制作
来源:互联网 发布:人脉软件 编辑:程序博客网 时间:2024/05/18 01:43
第一步:新建项目,如下图,选择windows下的类库项目。
第二步:在项目中添加一个类:IObjectSafety.cs 如下图:
IObjectSafety.cs代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MyActiveX
{
//Guid唯一,不可变更,否则将无法通过IE浏览器的ActiveX控件的安全认证
[ComImport, Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
[PreserveSig]
void GetInterfacceSafyOptions(
int riid,
out int pdwSupportedOptions,
out int pdwEnabledOptions);
[PreserveSig]
void SetInterfaceSafetyOptions(
int riid,
int dwOptionsSetMask,
int dwEnabledOptions);
}
}
第三步:添加一个用户控件 MyActiveXControl.cs 如下图
修改 MyActiveXControl.cs 代码,让其继承IObjectSafety,定义相应的Guid,该Guid就是ActiveX的classid
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace MyActiveX
{
[Guid("218849AF-1B2C-457B-ACD5-B42AC8D17EB7"), ComVisible(true)]
public partial class MyActiveXControl : UserControl,IObjectSafety
{
public MyActiveXControl()
{
InitializeComponent();
}
#region IObjectSafety 成员 用于ActiveX控件安全信任
public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions)
{
pdwSupportedOptions = 1;
pdwEnabledOptions = 2;
}
public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions)
{
throw new NotImplementedException();
}
#endregion
}
}
第四步:添加一个按钮,用于测试ActiveX控件,如下图:
为该按钮添加事件:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("powered by yyzq.net 叶知秋 yq@yyzq.net");
}
至此,代码编写部分完成。
第五步:我们来制作一个安装包,新建一个安装项目,如下图:
第六步:在安装项目的文件系统中添加刚才之前我们制作的ActiveX的DLL:MyActiveX.dll
(特别注意:在文件添加进来后,右击文件选择属性,设置其属性Register值为:vsdraCOM),如下图:
第七步:生成安装程序,在项目MyActiveX\Setup1\Debug下找到Setup1.msi,双击安装它。
然后在该目录下新建一个html文件(test.html)用于测试我们的ActiceX控件。HTML代码如下:
<html>
<title>Powered by yyzq.net Email:yq@yyzq.net</title>
<head>
</head>
<body>
<div>
<object id="yyzq" classid="clsid:218849AF-1B2C-457B-ACD5-B42AC8D17EB7"
width="320"
height="240"
codebase="Setup1.msi">
</object>
</div>
</body>
</html>
在IE浏览器下打开test.html,点击按钮
OK,到这里就结束了。
另外关于JS交互:
var yyzq= document.getElementById("yyzq"); //获取ActiveX控件对象。
然后: yyzq.函数名(参数)这样的方式来调用控件的函数并获取返回结果。
还有什么不懂的,欢迎留言,有什么不当之处,欢迎指正。转载请注明出处,谢谢!
- C#.NET ActiveX控件的制作
- C#.NET ActiveX控件的制作
- ACTIVEX控件的制作
- Visual Basic中ActiveX控件的制作
- 制作activex控件cab的方法
- VB自定义控件的制作,ACTIVEX,.OCX
- 用C#.NET 编写ActiveX(COM)控件
- C#制作activeX控件
- [ActiveX]VS2005如何制作ActiveX控件(与及通过 ActiveX控件上传本地图片的代码)
- [ActiveX]VS2005如何制作ActiveX控件(与及通过 ActiveX控件上传本地图片的代码)
- [ActiveX]VS2005如何制作ActiveX控件(与及通过 ActiveX控件上传本地图片的代码) .
- asp.net 开发ActiveX控件及制作CAB包
- C#BS通过ActiveX控件及制作CAB包来调CS
- C#BS通过ActiveX控件及制作CAB包来调CS
- .NET : 开发ActiveX控件
- 。net 调研activex 控件
- .NET : 开发ActiveX控件
- c#.NET中开发可用于Web网页的ActiveX控件
- 关于android Ip地址的获取
- java synchronized详解
- U盘安装ubuntu12.04成功后系统无法启动的原因及解决办法
- linux简单之美(一)
- Citrix 排错 无法连结至citrix XenApp服务器,指定的地址未配置citrix xenapp服务器
- C#.NET ActiveX控件的制作
- zigbee协议栈之中终端绑定
- Lua注册C++类及函数
- 第3课Linux常用命令(2)
- InnoDB性能调节提示
- 一些开发内容,做个备注
- shell之“>/dev/null 2>&1”
- 加速度传感器
- JavaScript中的call和apply