Js中调用OCX的classid。

写动态库的免不了接触OCX以供浏览器调用。

在写第一个OCX的时候调用时出现了一些问题。最难的一个地方在网上反而没查到。关于注册了OCX之后与JS关联的那个注册号.

<object id="oadd" name="oadd"
         style="LEFT:0px; WIDTH:50%; TOP:0px; HEIGHT: 30%"
         classid="clsid:91365EC3-642D-4D14-A834-6A529F8DBD25">
</object>

 就是以上的clsid  到底该选择idl中的哪一个?

简单的说就是自动生成的idl中的最后一个id

// HelloOcx.idl : ActiveX 控件项目的类型库源。

// 此文件将由 MIDL 编译器工具处理以
// 产生类型库(HelloOcx.tlb),该类型库将成为
// HelloOcx.ocx.

#include <olectl.h>
#include <idispids.h>

[ uuid(0AB5DC44-9459-48B2-AED1-74FE56414FA0), version(1.0),
  control ]
library HelloOcxLib
{
	importlib(STDOLE_TLB);

	//  CHelloOcxCtrl 的主调度接口
	[ 
		uuid(3D6B37A0-95DF-4276-B521-32217E585CD2)	
	]
	dispinterface _DHelloOcx
	{
		properties:
			[id(2) ] BSTR name;
			[id(3) ] BSTR nnname;
	methods:

			[id(DISPID_ABOUTBOX)] void AboutBox();
			[id(1)] BSTR GetResult(DOUBLE a, DOUBLE b);
			[id(4)] LONG getshenfenzheng(CHAR* str);
	};

	//  CHelloOcxCtrl 的事件调度接口

	[ 
		uuid(700928B3-4E58-4DA2-A274-B4BFB3FF33FA)	
	]
	dispinterface _DHelloOcxEvents
	{
		properties:
			//  事件接口没有任何属性

		methods:
			[id(1)] void OnAddCallBack(DOUBLE a, DOUBLE b);
	};

	//  CHelloOcxCtrl 的类信息
	[
		uuid(91365EC3-642D-4D14-A834-6A529F8DBD25)//
	]
	coclass HelloOcx
	{
		[default] dispinterface _DHelloOcx;
		[default, source] dispinterface _DHelloOcxEvents;
	};

};

即以上的这个。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值