Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497557
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:26:15

下载本文示例代码
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   在COM组件的使用和开发过程中经常需要获取有关组件的信息。而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取。例如,这里在使用Calendar组件时就用到了它的ProgID--MSCAL.Calendar.7。通过VC 附带的OLE/COM Object Viewer工具将可以很方便的查看指定组件的全部注册表信息和类型库信息。   图1是OLE/COM Object Viewer工具的程序界面。在左边的树视中列举了当前操作系统下所有注册了的COM组件对象。在Automation Objects分支下列举了所有的自动化对象(包括ActiveX控件)。在选中某个对象后,右边的属性页将显示此对象的相关信息。其中主要的信息如ProgID、CLSID等均在Registry页列出。如果需要进一步获取类型库信息,可以在对象上点击右键,并在弹出菜单中选取"View Type Information…"菜单项。这将启动如图2所示的ITypeLib Viewer工具。ITypeLib Viewer的左侧树视列出了控件的对象类、接口、方法等项。相应的,在选中某个具体的项目时,右侧视图将给出详细的内容信息。图1 OLE/COM Object Viewer图2 ITypeLib Viewer  除了可以使用OLE/COM Object Viewer工具得到这些信息外,也可以通过访问类型库也可以达到同样的目的。在类型库中以二进制的形式描述了一个或多个对象的类型信息。具体的类型信息包括:组件的CLSID、所支持接口的IID、接口的成员函数及其参数和返回值类型等。通过#import预编译指令和ClassWizard两种不同的方式可以从类型库获取对象的类型信息。其中在使用ClassWizard时,将可以根据类型库中的描述信息建立相应的以C 语言编写的包装类。通过此包装类将能很方便的在客户程序中使用组件对象提供的属性和方法。在组件程序中,类型库的创建是根据.odl文件中的描述进行编译的。下面给出一段.odl文件描述: [ uuid(66ACC255-A531-4153-91E6-864FEBEAE832), version(1.0) ]library Sample63{importlib("stdole32.tlb");importlib("stdole2.tlb");// Primary dispatch interface for CTest[ uuid(C19A7247-C812-48D4-AC58-41BA4B412839) ]dispinterface ITest{properties:// NOTE - ClassWizard will maintain property information here.// Use extreme caution when editing this section.//{{AFX_ODL_PROP(CTest)[id(1)] VARIANT Message;//}}AFX_ODL_PROPmethods:// NOTE - ClassWizard will maintain method information here.// Use extreme caution when editing this section.//{{AFX_ODL_METHOD(CTest)[id(2)] VARIANT BackMessage();//}}AFX_ODL_METHOD};// Class information for CTest[ uuid(EFEA38A7-C61E-4ADD-9E8C-8D41058558AA) ]coclass Test{[default] dispinterface ITest;};//{{AFX_APPEND_ODL}}//}}AFX_APPEND_ODL}}};   这里通过coclass关键字定义了对象类型信息,ClassWizard将据此建立相应的包装类。library关键字描述了当前库信息,并可通过importlib关键字引入其他的类型库。 天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   在COM组件的使用和开发过程中经常需要获取有关组件的信息。而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取。例如,这里在使用Calendar组件时就用到了它的ProgID--MSCAL.Calendar.7。通过VC 附带的OLE/COM Object Viewer工具将可以很方便的查看指定组件的全部注册表信息和类型库信息。   图1是OLE/COM Object Viewer工具的程序界面。在左边的树视中列举了当前操作系统下所有注册了的COM组件对象。在Automation Objects分支下列举了所有的自动化对象(包括ActiveX控件)。在选中某个对象后,右边的属性页将显示此对象的相关信息。其中主要的信息如ProgID、CLSID等均在Registry页列出。如果需要进一步获取类型库信息,可以在对象上点击右键,并在弹出菜单中选取"View Type Information…"菜单项。这将启动如图2所示的ITypeLib Viewer工具。ITypeLib Viewer的左侧树视列出了控件的对象类、接口、方法等项。相应的,在选中某个具体的项目时,右侧视图将给出详细的内容信息。图1 OLE/COM Object Viewer图2 ITypeLib Viewer  除了可以使用OLE/COM Object Viewer工具得到这些信息外,也可以通过访问类型库也可以达到同样的目的。在类型库中以二进制的形式描述了一个或多个对象的类型信息。具体的类型信息包括:组件的CLSID、所支持接口的IID、接口的成员函数及其参数和返回值类型等。通过#import预编译指令和ClassWizard两种不同的方式可以从类型库获取对象的类型信息。其中在使用ClassWizard时,将可以根据类型库中的描述信息建立相应的以C 语言编写的包装类。通过此包装类将能很方便的在客户程序中使用组件对象提供的属性和方法。在组件程序中,类型库的创建是根据.odl文件中的描述进行编译的。下面给出一段.odl文件描述: [ uuid(66ACC255-A531-4153-91E6-864FEBEAE832), version(1.0) ]library Sample63{importlib("stdole32.tlb");importlib("stdole2.tlb");// Primary dispatch interface for CTest[ uuid(C19A7247-C812-48D4-AC58-41BA4B412839) ]dispinterface ITest{properties:// NOTE - ClassWizard will maintain property information here.// Use extreme caution when editing this section.//{{AFX_ODL_PROP(CTest)[id(1)] VARIANT Message;//}}AFX_ODL_PROPmethods:// NOTE - ClassWizard will maintain method information here.// Use extreme caution when editing this section.//{{AFX_ODL_METHOD(CTest)[id(2)] VARIANT BackMessage();//}}AFX_ODL_METHOD};// Class information for CTest[ uuid(EFEA38A7-C61E-4ADD-9E8C-8D41058558AA) ]coclass Test{[default] dispinterface ITest;};//{{AFX_APPEND_ODL}}//}}AFX_APPEND_ODL}}};   这里通过coclass关键字定义了对象类型信息,ClassWizard将据此建立相应的包装类。library关键字描述了当前库信息,并可通过importlib关键字引入其他的类型库。 下载本文示例代码


COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五COM编程技术基础概述之五
阅读(86) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~