赛迪网 > IT技术 C/C++ > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

使用Microsoft Agent的COM接口编程 (1)

发布时间:2006.02.07 15:16     来源:赛迪论坛    作者:guang

Microsoft Agent具有相当广泛的用途,我们既可以把它加入到普通应用程序中供本地系统使用,也可以把它嵌入到HTML文档中供Internet/Intranet使用。Microsoft Agent支持C/C++、Visual Basic、Java、JScript和VBScript等多种编程语言,并为程序员提供了OLE自动化服务器和ActiveX控件两种编程方法,从本质上讲,这两种编程方法都属于OLE技术的范畴,都建立在COM (Component Object Model,组件对象模型)的基础之上。利用VC++的MFC类库或VB等支持ActiveX的编程工具可以很容易地调用ActiveX控件,但是ActiveX控件把许多OLE技术的细节都隐藏起来了,如果我们想加深对一个COM对象的了解的话,则应直接使用它的COM接口来编程,从这一点出发,本文将介绍Microsoft Agent的COM接口的基本编程方法,希望能够起到抛砖引玉的作用。

OLE编程的基础知识

早期的OLE(现称为OLE 1)首次出现在Windows 3.1中,其主要用途是生成复合型文档,使得一个应用程序的文档可以通过链连或嵌入的方式包含其它应用程序的数据(对象)。随着软件组件技术变得日益重要起来,Microsoft在OLE 1

的基础上设计了OLE 2,利用它可以实现二进制级上可重用的软件组件,并且控制这些组件的版本和扩充其功能变得相当容易。由于OLE 2的体系结构被设计成为开放式的、可扩充的,所以以后不会再出现OLE 3或4。经过多年的发展,如今的OLE已经包括了OLE自动化、COM、COM+、DCOM和ActiveX等多项技术,它们是ActiveDirectory(将用于NT 5.0的一项关键技术)、OLE Messaging、DirectX 、Active Controls、ActiveX Scripting和Task Scheduler等等多种新技术的基础,OLE已不再是Object Linking and Embedding的缩写,它变成了一个独立的单词,专门用来表示Microsoft的软件组件集成技术。

COM是OLE技术的基础,它规定了对象之间如何相互通讯,符合COM规范的对象也叫做COM对象。按照COM的规定,对象内部可以使用任何语言来编写,它们通过接口(Interface)来与外界通信。所谓接口是指对象提供的一组特定的功能调用(方法),每个对象可以有多个接口,不同的对象可以实现同一种接口,客户程序通过对象的接口指针来调用对象的功能。由于OLE规定了组件在二进制级上可重用,客户程序不能够直接访问对象内部的数据,读取或设置对象的属性也都要通过接口来进行。每一种接口都是从一个叫IUnknown接口继承而来,都必须重新实现IUnknown的三个方法:QueryInterface、AddRef和Release,客户程序调用QueryInterface可以获得对象的其它接口指针,AddRef和Release分别将对象的引用计数加一和减一,当引用计数为零时,对象就会被释放。客户程序调用COM对象的一般步骤是首先创建一个对象,然后获取需要的接口指针,调用相应的功能,最后释放接口指针和对象。

C++程序调用Microsoft Agent的基本方法

根据前面介绍的基础知识,下面我们来看看C++程序中如何调用Microsoft Agent。

1.设置与选项
本文使用的编程工具为Visual C++ 5.0,程序为一般的Win32应用程序,为了使程序能够正确地编译连接和运行,您首先需要拥有AgtSvr.h和AgtSvr—i.c两个定义Microsoft Agent的COM接口的文件,它们可以在Microsoft的MS Agent站点(http://www.microsoft.com/workshop/
prog/agent/)上找到,或者请下载Microsoft最新的Internet Client SDK或Platform SDK,其次,请在Project/Settings/Link菜单中加入以下的库:ole32.lib、oleaut32.lib、uuid.lib、odbc32.lib odbccp32.lib,最后要确保系统中安装有Microsoft Agent及动画人物数据。

1 2 3 4 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管