vbnet加载ocx控件不能生成窗体_vs2017 C# ActiveX浏览器插件 创建 发布 C# windows窗体控件库(.NET Framework)注意事项...

本文介绍了在VS2017中创建和发布的C# ActiveX控件过程,包括设置目标框架为.NET Framework 4 Client Profile,实现IObjectSafety接口以获取客户端信任,以及如何打包和在HTML页面中使用。此外,提供了源码下载链接。
摘要由CSDN通过智能技术生成

vs2017需要安装插

项目创建

af75b0e9f94e44c1fd4374424948f4e1.png

右键项目属性,修改目标框架为.NET Framework 4 Client Profile(用原来的目标框架发布后空间无法调用)继续修改2b5d805b4bb3d8fa27ae665b42e9a35c.png

94f361ff4828804e38768a54b32479a8.png

配置大概就这些,接下来码代码

为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。

namespace UserActiveXDemo

{

[ComImport, GuidAttribute("F0031FC7-3560-488E-A2AD-7ABC7D85998C")]

[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);

}

}

用户控件设计

cd2bc4c2edb250192f6ac4ec6ccc03f7.png

用户控件要实现

IObjectSafety接口

namespace UserActiveXDemo

{

//guid 可以自己定义

[Guid("685F0A47-944D-4145-BF4E-76A02A422B02")]

public partial class UserControl1: UserControl, IObjectSafety

{

public UserControl1()

{

InitializeComponent();

}

public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions)

{

throw new NotImplementedException();

}

public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions)

{

throw new NotImplementedException();

}

}

}

接着是将控件发布

新建项目

3fef983a98029842f9978dfb6e6d8fec.png

在UserActiveXSetup项目上右键--add--项目输出

4654815cbd23134dcdc8f6a989de9568.png

点击确定

在主输出文件上右键属性

208dfdbff8b535f1ad2f362a754f1866.png

Register属性修改

633329c2512c5fd810f52d0d04f4f2cf.png

然后生成安装

在html 页面 添加参考资料

width="500"

height="100"

codebase="CardReader/SetupCardReader/Debug/Setup.exe">

classid 为 UserControl 顶部的guid

参考大神地址:

http://www.cnblogs.com/yilin/p/csharp-activex.html

源码:链接: https://pan.baidu.com/s/1YvyXLLTQ1QRbMhd9HNrCpw&shfl=shareset 提取码: v5qk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值