vs2012 ATL编写activex(一)



 2013-07-08 14:47:32|  分类: c&c++ |  标签: |举报 |字号 订阅

前言:本人开发环境,win7,32位,vs2012

(一)、处理简单对象

一、前面的简单,如建项目,选项等,用图片带过
vs2012 ATL编写activex(一)_第1张图片
新建ATLProject7项目
vs2012 ATL编写activex(一)_第2张图片
 
选中,“容许合并代理/存根代码",完成
vs2012 ATL编写activex(一)_第3张图片
选中解决方案中的方案名,右键,添加,类,选中”ATL简单对象“
vs2012 ATL编写activex(一)_第4张图片
 添加后出现下图,输入类名
vs2012 ATL编写activex(一)_第5张图片
 下一步,完成
vs2012 ATL编写activex(一)_第6张图片
完成后,解决方案里多了个IAltTest的接口,右键,添加,添加方法
 
vs2012 ATL编写activex(一)_第7张图片
出现以下对话框,输入正确的方法名,参数(in为输入参数,retval为返回输出,输出必须是指针类型)
 
vs2012 ATL编写activex(一)_第8张图片
下一步
 
vs2012 ATL编写activex(一)_第9张图片
完成,随后,在解决方案中选中选中IAltTest接口,下方就出现了刚添加的方法
 
vs2012 ATL编写activex(一)_第10张图片
 双击方法名,添加以下代码,做加法运算,
vs2012 ATL编写activex(一)_第11张图片
 同理,添加第二个方法strMessage,处理字符串(activex中的字符串处理用BSTR)
vs2012 ATL编写activex(一)_第12张图片
输完参数,完成,双击,为strMessage方法添加以下代码
另:在开头添加以下3行代码
#include  "comutil.h"
#pragma  comment(lib, "comsuppw.lib")
#pragma  comment(lib,"comsuppwd.lib")
)
 
vs2012 ATL编写activex(一)_第13张图片
 
 编译通过,生成解决方案。

二、编写html文件,并在ie中调用

1、test.html文件如下:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<TITLE>对象 test 的 ATL 测试页</TITLE>
</HEAD>
<BODY>


<OBJECT ID="test" CLASSID="CLSID:F5222FA9-6907-4BE0-A258-A87381442478"></OBJECT>


<input type="button" value="Add" onclick="add();" />

<script type="text/javascript">
    function add() 
    {
        var calc = document.getElementById('test');
        var result = calc.add(3,6);

alert(result);

var str = calc.strMessage("hello,你个小屁孩");
alert(str);
 
    }
</script>

</BODY>
</HTML>
其中,clsid来自
vs2012 ATL编写activex(一)_第14张图片
 
 

2、设置ie,使得容许activex运行,然后用ie打开test.html
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
容许阻止的内容,点击”add“按钮
选择”是“,容许交互
vs2012 ATL编写activex(一)_第15张图片
 
依次出现

vs2012 ATL编写activex(一)_第16张图片
 
vs2012 ATL编写activex(一)_第17张图片
 
vs2012 ATL编写activex(一)_第18张图片
 
OK,本次课程结束。

你可能感兴趣的:(vs2012 ATL编写activex(一))