COM组件技术-自动化

COM组件技术-自动化

ID:37638066

大小:192.71 KB

页数:10页

时间:2019-05-27

COM组件技术-自动化_第1页
COM组件技术-自动化_第2页
COM组件技术-自动化_第3页
COM组件技术-自动化_第4页
COM组件技术-自动化_第5页
资源描述:

《COM组件技术-自动化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、内容自动化(Automation)•自动化基础•自动化对象实现潘爱民•自动化对象应用•自动化编程http://www.icst.pku.edu.cn/compcourse自动化产生与发展几个概念•弱类型的高级语言(比如VisualBasic)如何•自动化对象使用COM?–实现了IDispatch接口的COM对象•属性和方法•VBA(或VBScript)•ODL(对象描述语言)•类型库•自动化与COM的关系•自动化兼容的数据类型•自动化的广泛应用属性(property)和方法(method)类型库(typelib)•自动化对象的两个基本特性,都具有符•类型信息是客户程序与组件对象

2、之间通讯号化的名字,用DISPID来标识的基础•IDL和ODL•属性是指自动化对象的数据特征–接口类型信息使用interface或dispinterface关键字描述–属性可以由索引,索引可以是整数,也可以是其他–对象类型信息使用coclass关键字描述类型•library关键字描述库信息–一个组件程序中的所有对象放在一个ODL文件中,并•方法是指自动化对象所提供的功能服务用library关键字描述库信息–方法比属性要灵活得多,可以包含参数•工具MIDL:从ODL(IDL)编译成TLB文件1ODL描述举例ODL描述举例(续一)[[propput,helpstring("Retu

3、rnsandsetsxcoordinate.")]uuid(3C591B20-1F13-101B-B826-00DD01103DE1),//LIBID_Point.HRESULTx([in]intValue);helpstring("Point1.0TypeLibrary"),[propget,helpstring("Returnsandsetsycoordinate.")]lcid(0x0000),HRESULTy([out,retval]int*retval);version(1.0)[propput,helpstring("Returnsandsetsycoordinat

4、e.")]]HRESULTy([in]intValue);libraryPoint[helpstring("MovePointTo.")]{HRESULTMoveTo([in]intnewX,[in]intnewy);importlib("stdole.tlb");}[uuid(3C591B25-1F13-101B-B826-00DD01103DE1),//IID_IPoint.[helpstring("IPointinterface."),uuid(3C591B26-1F13-101B-B826-00DD01103DE1),//IID_DIPoint.]helpstring(

5、"DIPointinterface."),interfaceIPoint:IUnknown]{dispinterfaceDIPoint[propget,helpstring("Returnsandsetsxcoordinate.")]{HRESULTx([out,retval]int*retval);interfaceIPoint;}未完未完ODL描述举例(续二)另一个ODL接口例子[uuid(BFB73347-822A-1068-8849-00DD011087E8),[version(1.0),helpstring("Usefulhelpstring."),uuid(3C59

6、1B21-1F13-101B-B826-00DD01103DE1),//CLSID_Pointhelpcontext(2480)helpstring("PointClass"),appobject]]dispinterfaceMyDispatchObject{coclassPointproperties:{[id(1)]intx;//Anintegerpropertynamedx.[default]dispinterfaceIPoint;}[id(2)]BSTRy;//Astringpropertynamedy.}//forlibrarymethods:[id(3)]voids

7、how();//Noarguments,noresult.[id(11)]intcomputeit(intinarg,double*outarg);};IDispatch接口分发ID(DISPID)classIDispatch:publicIUnknown•整数,0和负数有特殊含义{public:保留的分发ID及其含义分发ID值说明virtualHRESULTGetTypeInfoCount(UINT*pctinfo)=0;接口的缺省成员,如果在客户程序中不指定属性或方virtualHRES

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。