作者:朱金灿

来源: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. 洛谷 P1303 A*B Problem

    P1303 A*B Problem 题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 复制 1 2 输出样例#1: 复制 2 说明 每个数 ...

  2. 【天气APP】之桌面时钟witget组件

    桌面时钟之组件开发: 整个流程例如以下: 下载地址demo:www.github.com/xufeifandj service+组件+广播进行后台实时更新时间 (一)开机广播监听开机启动service ...

  3. 【MySQL集群】——Java程序连接MySQL集群

    上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中. 外部程序想要远程连接到mysql集群,还须要做的一个操作就是设 ...

  4. 导出查询结果到csv文件

    set colsep ,   set feedback off   set heading off   set trimout on   spool my.csv  select * from emp ...

  5. [TypeScript] Type check JavaScript files using JSDoc and Typescript 2.5

    Typescript 2.5 adds JSDoc type assertion support for javascript file via ts-check service. First of ...

  6. poj 3122

    Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10309   Accepted: 3651   Special Ju ...

  7. 再记AE与AO的区别与联系

    原文地址:转:ArcObjects与ArcEngine作者:梦游   ArcObjects(简称AO),一般都是指ArcGIS Desktop版本的组件开发集,即需要安装ArcGIS桌面版软件后才能安 ...

  8. LA 3026 - Period KMP

    看题传送门:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...

  9. Linux中U盘和SD卡加载卸载命令

    U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系 ...

  10. 微信小程序--成语猜猜看

    原文链接:https://mp.weixin.qq.com/s/p6OMCbTHOYGJsjGOINpYvQ 1 概述 微信最近有很多火爆的小程序.成语猜猜看算得上前十火爆的了.今天我们就分享这样的小 ...