摘要: 总共分为四张表,头三张表是M$扩展定义的window平台的数据类型,第四张表是编译器支持的原始数据类型。Windows数据类型(1)Windows数据类型(2)Windows数据类型(3)Window数据类型 (4) 在此直接给出表。数据类型名称字节数别名取值范围int*signed,signed int由操作系统决定,即与操作系统的"字长"有关unsigned int*unsigned由操作系统... 阅读全文
posted @ 2010-09-16 09:58 大树的种子 阅读(563) 评论(0) 推荐(0) 编辑
摘要: C++主要使用的是C-Style字符串,而M$在Windows中又增加了很多C-Style字符串的变体。这个一多嘛,就容易乱~所谓字符串,就是由字符组合而成,所以我们先来将将字符类型。首先,存在两种最基本的字符类型:char和wchar_t。char大家都很熟悉了,我就跳过。至于wchar_t,是应用于UNICODE的宽字符,即一个字符2Bytes,16Bits。事实上,Windows中利用 ty... 阅读全文
posted @ 2010-09-16 09:27 大树的种子 阅读(1856) 评论(0) 推荐(0) 编辑
摘要: CComObjectRootBase中以表驱动的方式对接口的查询作了一个内部的实现,即InternalQueryInterface()。所以在创建基于ATL的COM类时,需要创建一个包含所有实现接口的映射表。1. BEGIN_COM_MAP、END_COM_MAP、COM_INTERFACE_ENTRY与COM_INTERFACE_ENTRY2宏ATL提供了BEGIN_COM_MAP、END_CO... 阅读全文
posted @ 2010-09-14 16:57 大树的种子 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: ATL开发指南的第三章的讲述的重点有四个:   1.ATL如何提供对组件宿主的支持。   2.ATL如何提供对IUnknown接口实现的支持。   3.ATL如何提供对类工厂的支持。   4.ATL如何提供对组件自注册的支持。3.1 ATL 的基本特征描述:ATL提供了实现基于COM组件内核的支持.下面是ATL所提供的一些功能1.AppWizard,它负责创建起始的ATL工程2.Object Wi... 阅读全文
posted @ 2010-09-14 16:41 大树的种子 阅读(3388) 评论(0) 推荐(0) 编辑
摘要: 1.Objectsa.Simple Object:用于实现业务逻辑,无用户界面(User Interface)。只实现了IUnknown和default 厂类。b.Add-in Object:用于实现创建整合到VC IDE的COM组件。支持Toolbar和Event Handling,允许实现对VS commands的响应。支持并且实现了IDSAddln接口(此接口用于VC IDE和对象的交互)。... 阅读全文
posted @ 2010-09-14 09:42 大树的种子 阅读(978) 评论(0) 推荐(0) 编辑
摘要: //// 注意rgs文件是没有注释符,这里"//"是我为了加说明而使用,使用此文件时应把这些注释去掉//HKCR{//// 千万注意要在这里的 'Component Categories'和 'CLSID' 前加的 NoRemove,如果没有加,// 则在组件卸载时会将这两项从注册表中删掉,要是CLSID删掉,那就悲剧了,准备重装系统吧。 //NoRemove 'Component Categor... 阅读全文
posted @ 2010-09-06 21:19 大树的种子 阅读(2326) 评论(0) 推荐(0) 编辑
摘要: 表 ATL的工程结构文件名说明ProjectName.cpp它是主工程文件。里面包含了COM所需的支持函数,这些函数用来为你的组件提供宿主文件。ProjectName.h组件在宿主文件里的接口声明。MIDL编译器自动生成了该文件。编译工程的IDL的文件就是为了生成该文件。ProjectName.idl你的工程的IDL文件。你可以在这里添加接口和方法定义。MIDL心编译器处理该文件并为工程生成一个类... 阅读全文
posted @ 2010-09-05 19:52 大树的种子 阅读(756) 评论(0) 推荐(0) 编辑
摘要: //// SetRegKeyValue - Private function that updates the registry// 设置注册表 键和键值//static BOOL SetRegKeyValue( LPTSTR pszKey,//主键 LPTSTR pszSubkey,//子键 LPTSTR pszValue )//键值{ BOOL bOk = FALSE; LONG ec; HK... 阅读全文
posted @ 2010-09-05 16:01 大树的种子 阅读(647) 评论(0) 推荐(0) 编辑
摘要: Widows注册表HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字。在CLSID关键字之下列有系统中安装的所有组件的CLSID。注册表CLSID是一个具有如下格式的串:00000010-0000-0010-8000-00AA006D2EA4 HKEY_CLASSES_ROOT的开头,列出的将是各种应用程序所注册的文件扩展名。在扩展名之后,可以看到许多其他的名字。此... 阅读全文
posted @ 2010-09-05 15:25 大树的种子 阅读(8514) 评论(0) 推荐(0) 编辑
摘要: COM组件的一般由以下三个文件进行定义和实现:1. IMATH.H 组件的接口定义文件2. MATH.H 组件的头文件3. MATH.CPP 组件的实现文件IMATH.H一般定义了组件的接口和一些GUID,内容如下//// imath.h// 三个GUID分别唯一标识了组件类和两个接口,以便客户程序可以通过这两个GUID获得组件类和两个接口的实例引用。// {A888F560-58E4-11d0-... 阅读全文
posted @ 2010-09-05 14:07 大树的种子 阅读(1176) 评论(1) 推荐(0) 编辑