博客日历
2025年07月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
COM.3 用VC++生成接口的COleDispatchDriver包装类来调用COM组件
一般地,可以使用CoCreateInstance来调用COM组件。但对于实现了IDispatch接口的COM组件,还有更容易的方法——用VC++自动生成接口的COleDispatchDriver包装类来调用COM组件。
举例说明:在VC++中执行脚本语句,比如VBScript语句。
系统提供了一个控件:C:\WINDOWS\system32\msscript.ocx,它提供了一个叫做IScriptControl的接口,通过它,我们就可以执行脚本语句了。
1.用VC++自动创建包装类
用VC++建立一个支持MFC的工程,添加一个类,选择“类型库中的MFC类”,再选择msscript.ocx文件,并将IScriptControl添加到右栏,如下图:

点击完成后即可生成CScriptControl包装类。

点击完成后即可生成CScriptControl包装类。
2.使用生成的类
//初始化COM库
CoInitialize(NULL);
//创建MSScriptControl.ScriptControl实例
//这个名称(ProgId)可以通过VC++目录下的小工具oleview得到。
CScriptControl js;
if (js.CreateDispatch("MSScriptControl.ScriptControl"))
{
//设置当前使用的脚本语言
js.put_Language("JScript");
//执行语句,执行完成后var中即包含了表达式的结果
VARIANT var=js.Eval("1.234+5.31");
//释放接口
js.ReleaseDispatch();
}
//关闭COM库
CoUninitialize();
3.本例的其他用处
可以很方便将这点代码封装为一个表达式计算器。
可以很方便将这点代码封装为一个表达式计算器。
上一篇: COM.2 用实例说明COM的使用(用IActiveDesktop设置壁纸)
下一篇: COM.1 COM编程简介
分类:Win32/C++ 查看次数:11964 发布时间:2009/6/17 17:05:20