作者:朱金灿

来源:http://blog.csdn.net/clever101

首先创建一个ATL COM对象,其过程参考下面文章:

C#调用ATLCOM

其实给COM对象添加方法和属性可以不用界面的繁琐做法,只需要在idl文件和代码中添加下面代码(这里假设你的接口名为IImportCode):

interface IImportCode : IDispatch{
[propget,id(1),helpstring("属性AddResult")]HRESULT AddResult([out,retval] LONG* lpRet);
[id(2), helpstring("方法Add")] HRESULT Add([in] LONG Num1, [in] LONG Num2);
};

在ATL类对象CImportCode中添加如下代码:

public:

	STDMETHOD(Add)(LONG Num1, LONG Num2);

	STDMETHOD(get_AddResult)(LONG* lpRet);

private:

	LONG m_lRet; // 用于保存加法运算结果

STDMETHODIMP CImportCode::Add( LONG Num1, LONG Num2)
{
m_lRet = Num1 + Num2;
return S_OK;
} STDMETHODIMP CImportCode::get_AddResult( LONG* lpRet )
{
* lpRet = m_lRet;
return S_OK;
}

值得注意的是添加的属性名为AddResult,其接口参数类型为long*,那么对应的获取属性值得接口为get_AddResult,即get_属性名。

测试的JS代码很简单:

// Create the Add Com object.
var AddMethod = new ActiveXObject("DevAssist.ImportCode"); var num1 =100;
var num2 =20; // Translate number to text.
try
{
AddMethod.Add(num1,num2);
var objNumber = AddMethod.AddResult; // 获取它的属性值
WScript.Echo(objNumber);
}
catch (e)
{
// Display details about any thrown exceptions.
WScript.Echo(e.name + ": " + e.description + " " + e.number);
}

参考文献:

1. JS调用ATL DLL

2. NumberSpeller COM-ponent

JS调用ATL COM中的C++接口的做法的更多相关文章

  1. js调用父窗口中的方法

    window.open调用父窗口中的方法 回调函数: function fun9(ex){ alert(ex); } 调用语句: window.open("RoomSelecter.htm? ...

  2. JavaScript调用ATL COM(二)

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在上篇文章中介绍了如何在JS中调用ATL COM: JS调用ATL COM中的C++接口的做法 现在我们可以把它嵌入到 ...

  3. C#写COM组件,JS调用控件

    1.c#2005中新建项目,类型为类库,项目名为AddCom确定. 配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 2.打开 ...

  4. openerp js调用Python类方法

    转自:http://blog.csdn.net/kuaileboy1989/article/details/42875497 js调用.py文件中定义的类 形式如下: //创建product.prod ...

  5. js调用百度地图接口

    原文:js调用百度地图接口 这是前几天公司做的新项目,上面需要用到地图的数据.第一次做这类型的东西没啥思路,咱们经理说,这东西简单,截个图存文件夹里调整好尺寸,数据库里存上图片的地址动态调用就行了.心 ...

  6. Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码

    (从我的新浪博客上搬来的,做了一些修改.) 最近迷上了node.js以及JavaScript.现在接到一个活,要解析一个出租车点位数据的地理信息.于是就想到使用Node.js调用百度地图API进行解析 ...

  7. WebView中JS调用Android Method 遇到的坑整理

    WebView是android中常用的一个组件,其作用是展示网页,并让网页和android app进行一些业务逻辑上的交互. 其坑无数,相信用过的都知道,一个一个来解决吧. 1.怎么互调: <! ...

  8. vs2010开发activex(MFC)控件/ie插件(三),js调用ocx控件的接口函数

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802280   js调用ocx控件的接口函数,先看demo效果:      简单测试过程 ...

  9. [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]

    原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...

随机推荐

  1. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观

    摘要      本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章. 前言      在上一篇文章中,我们实现了第一个ASP.NET MVC页面.对于没有接触 ...

  2. loadrunner监控linux之linux下安装rpc

    安装和配置rpc服务 说明:rpc服务需rsh的支持,一般情况下rsh已安装.通过rpm -qa rsh命令查看. 下载rpc.rstatd-4.0.1.tar.gz,可先下载到window下,通过f ...

  3. Jenkins学习总结(1)——Jenkins详细安装与构建部署使用教程

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发 ...

  4. vue中监听路由参数变化

    今天遇到一个这样的业务场景:在同一个路由下,只改变路由后面的参数值, 比如在这个页面  /aaa?id=1 ,在这个页面中点击一个按钮后 跳转到 /aaa?id=2 , 但从“/aaa?id=1”到“ ...

  5. StackExchange.Redis 官方文档

    原文:StackExchange.Redis 官方文档 时隔多年的翻译终于完成了第六个,也是很重要的的官方文档,是介绍有关链接管理,管道流水线和多路复用的 官方地址在这里:官方文档 下面做个汇总: S ...

  6. softmax 与 sigmoid & softmax名字的由来

    Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广. 参考:http://blog.csdn.net/u014422406/article/details/52805924 ...

  7. akka---Getting Started Tutorial (Java): First Chapter

    原文地址:http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html Introduction Welcome t ...

  8. 支付宝支付返回通知时 notify_url和return_url的选择

    页面跳转同步通知页面特性(return_url特性) 买家在支付成功后会看到一个支付宝交易提示成功的页面,该页面会停留几秒,然后会自动跳转回商户指定的同步通知页面(参数return_url) 该页面中 ...

  9. WebApi自定义返回类型和命名空间实现

    1.自定义ContentNegotiator /// <summary> /// 返回json的ContentNegotiator /// </summary> public ...

  10. SourceInsight打开的工程中中文字体显示乱码的问题

    1.在ubuntu下进入文件所在目录执行指令“file *”来查看文件的编码方式,sourceinsight有些版本只支持GB2312和ascil码,所以需要编码转换: 2.在ubuntu下可以通过i ...