【工作笔记】没有界面程序调用ActiveX控件

背景

由于chrome浏览器调用ActiveX控件有问题,所以打算使用NPAPI再封装一层,而NPAPI不支持基于MFC的DLL,所以无法用常规的方法将ActiveX控件添加到工程中去。

解决方法

在需要调用OCX的类文件前面加上

#import "C:\\Program Files (x86)\\AnySign\\AnySignReader\\xssinterface.ocx" no_namespace named_guids

编译以后会会生成xssinterface.tlh和xssinterface.tli两个文件,在文件中有ocx中的方法声明。

使用前,先对OCX进行初始化

CoInitialize(NULL); //initialize COM library

HRESULT hr = CoCreateInstance(CLSID_XSSInterface, NULL, CLSCTX_ALL,      __uuidof(_DXSSInterface),
		(LPVOID *)&m_pOcx);   //其中CLSID_XSSInterface、_DXSSInterface以及m_pOcx的类型_DXSSInterface都可在xssinterface.tlh中查找到;

程序退出前记得释放

CoUninitialize();

未解决问题

如何响应OCX中的事件?

说明

#import所指定的ocx所在路径只是为了生成.tlh和.tli文件,与运行时ocx所在的路径无关,只要ocx在机器上注册过了就可以用。

【工作笔记】没有界面程序调用ActiveX控件

时间: 2024-10-10 23:08:39

【工作笔记】没有界面程序调用ActiveX控件的相关文章

CVI 调用ACtiveX控件出现错误

利用CVI 做工程,三级窗体包含日期activeX控件,在win10下运行报如下错误. 后在main.c 中加上这个 if (InitCVIRTE (0, argv, 0) == 0)  return -1;  CA_InitActiveXThreadStyleForCurrentThread (0,  COINIT_APARTMENTTHREADED ); 这样解决问题. Q:ActiveX controls cannot be created in a thread whose concur

activex控件调用

有时候网页登录啊 密码加密啊什么的都是用activex控件来完成的,这也是为了提高用户的安全性!但是这个为我们这些post爱好者带来了无限的烦扰啊,为了研究这个,我们必须深入的了解activex控件的工作原理,特别是加密原理! 再深入之前首先要会调用activex控件,因为破解activex控件肯定是不行的,难度很大而且还不合法!所以我们只能去调用它! 下面就是易语言调用activex控件的方法,这是官方给出的文档,仔细看就知道了,我就没必要详细的写如何调用了! 地址:http://www.dy

ActiveX控件(MFC篇)

目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构    6 1.3.1 COM接口    6 1.3.2 COM类    7 1.3.3 属性页    7 1.3.4 应用程序类    8 1.3.5 注册与注销    8 1.4 方法    9 1.4.1 增加    9 1.4.2 删除    11 1.5 属性    12 1.5.1 Te

使用C#开发ActiveX控件(新)

前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件. 虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需要浏览器端安装.NET Framework(版本取决于开发Ac

MFC 之ActiveX控件学习

本文将介绍ActiveX控件的应用与工作原理,读者可以把ActiveX控件看成一个极小服务器的应用程序,它不能独立运行,必须要嵌入到容器程序中与容器一起运行,就像电脑主机中的显卡,它自己在电脑硬件系统中是不能发挥作用的必须要和嵌入到主板中,与主板一起工作. ActiveX控件与普通的Windows控件有共同之处也存在差异.首先ActiveX控件有自己的属性和方法.对ActiveX控件的操作通过调用控件对外的方法即可.而Windows控件是Windows内部的对象,虽然它们也有自己的属性和方法但是

C#制作ActiveX控件及部署升级(摘自网络)

使用C#开发ActiveX控件 控件开发.制作CAB包.签名.部署 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件. 虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需

C#开发ActiveX控件

昨天写了篇博客<Winform 程序嵌入WPF程序 并发送消息>,没有说明为什么要嵌入WPF程序,那么今天就来唠叨唠叨其中的一个使用场景,开发ActiveX控件 首先,新建一个类库工程HuaYun.ActiveX,右键工程属性,在“应用程序”页,点击“程序集信息”按钮,在弹出的窗体里勾选“使程序集COM可见”,具体操作如下图 第二步,切换到“生成”的选项卡,勾选“为COM互操作注册”,如下图 第三步,在AssemblyInfo.cs里添加[assembly: AllowPartiallyTru

在Qt中使用ActiveX控件

Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QAxContainer和QAxServer. l         QAxContainer允许我们使用COM对象,并且可以将将ActiveX控件嵌入到Qt程序中去. l         QAxServer可以将我们写的Qt控件导出为COM对象或者是ActiveX控件. 第一个例子我们来演示一下在Qt中

类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法

解决办法是Form类中定义一个静态的ActiveX对象,在formload中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可. public static AxClientDriver_NTLib.AxClientDriverCtrl com = new AxClientDriver_NTLib.AxClientDriverCtrl(); private void Form1_Load(object sender, EventArgs e) { com = this.axC