COM组件编程
新源译码
这个作者很懒,什么都没留下…
展开
-
ATL实现COM组件
参考文献:https://blog.csdn.net/Marcus2006/article/details/41978799ATL实现COM组件比较简单,关键是在程序中如何调用该组件。vs2010制作好COM组件后,会自动注册,但是vs2015却没法自动注册。一,自动注册:直接从MFC Typelib中导入该组件,导入相应接口,就可以了。二、非自动注册:方法一:只需要两...原创 2019-11-26 09:23:54 · 307 阅读 · 0 评论 -
ATL和vc++中的智能指针(分别是CComPtr和_com_ptr_t)
一、智能指针的概念智能指针是一个类,不是指针,智能指针在所包含的指针不再被使用时候会自动释放该所包含指针所占用的系统资源,而不用手动释放。原理:智能指针封装了包含指针的AddRef()函数和Release()函数,且在该类不被需要的时候在析构函数里调用包含指针的Release()函数释放包含指针的资源。因此实质是利用类的析构达到调用包含指针的Release()函数的目的。二、VC++中...原创 2019-11-25 16:52:39 · 580 阅读 · 0 评论 -
ATL com的dll文件与tlb文件
一、.tlb文件:只有COM组件才有tlb文件,普通dll文件没有。包含内容:1.它包含了COM类和接口的GUID值,接口的函数声明信息,并不是接口的实现文件。相当于类和接口的头文件。tlb文件被import后,编译成两个文件,.tli文件和.tlh文件,里面详细描述了接口和类声明和GUID值。二、.dll文件:COM组件的dll包含着真正的接口实现内容。因此,使用时两...原创 2019-11-25 16:51:24 · 488 阅读 · 0 评论 -
MFC实现COM组件
一般而言,ATL实现了对COM组件最好的支持,所以不用MFC实现COM组件。但是MFC实际上也是可以实现COM组件的。一、MFC DLL优点:MFC com组件可以将MFC的类型作为参数进行传递,但ATL com只能用规定的COM数据类型。但实际上MFC 扩展dll也可以用MFC类型作为参数。具体代码:https://github.com/moisiet/MFC-COMCOM组件与...原创 2019-11-25 16:49:18 · 1044 阅读 · 0 评论 -
如何定义一个接口(接口Interface只在COM组件中定义了,MFC和C++都没有接口的概念)
接口是COM中的关键词,在c++中并没有这个概念。接口是一种极度的抽象。接口用在COM组件中有自己的GUID值,因此定义接口时一定要指定它的GUID值。实际上接口就是struct,即#define interface struct一、接口的定义步骤:0.包含头文件:#include "afxtempl.h"1.定义一个GUID值:static const IID IID_IFunc...原创 2019-11-25 16:47:21 · 443 阅读 · 0 评论 -
COM组件的集合与包容
集合与包容,实质就是组件之间的互相调用。即一个组件使用另一个组件的功能,达到代码复用的作用。只是这种复用是构建在二进制数据上的(因为被复用的组件常常以dll的格式存在),而不是像c++代码复用是以源文件的形式复用。集合与包容的区别在于:包容是将内组件的功能进行封装,由外组件提供接口供客户调用,但实质执行任务的仍然是内组件。集合是将内组件的功能暴露出来供客户调用,让客户感觉好像调用的是外...原创 2019-11-25 16:46:40 · 377 阅读 · 0 评论 -
关于com组件中idl文件的理解
IDL文件:IDL文件主要定义两大类内容:一是定义接口;二是定义类型库。定义接口的关键字是interface。每个接口定义前面方括号里面的内容是该接口的属性,最重要的是uuid的定义。该部分经过MIDL.exe编译后生成projectName_i.c和projectName_i.h文件,包含着接口本身(属性(uuid,helpstring等)和方法)的信息。该部分作用是定义接口。定义类...原创 2019-11-25 16:43:45 · 1700 阅读 · 0 评论 -
关于MFC消息的总结
一、MFC的消息类型MFC的消息类型大致可以分为三种:1.命令消息。由菜单和工具栏或快捷键产生,以WM_COMMAND形式发出(以WM_COMMAND发出的还有很多控件,如Button等,但它们产生的不是命令消息,是通知消息)命令消息的消息宏是:ON_COMMAND(id,memberFxn)。2.窗口消息。由系统产生,典型特征是以WM_开头(WM_COMMAND除外)。此类消息映...原创 2019-11-25 16:43:11 · 828 阅读 · 0 评论 -
vs中解决方案、项目、类及ATL的理解
解决方案,是对所有要完成工作的统称,一般叫Solution。项目,也叫工程,是将解决方案分成若干个模块进行处理,一般叫做Project。添加项目就是添加工程。解决方案是所有项目的总和。一个项目里面有各种文件,如图片资源、音频资源、视频资源、ICO、MENU、SCROLLBAR等等。是一个独立的包罗各种资源的集合,基本算是功能齐全完备,自给自足的小团体了。因为每个项目里面都有一个CWinAp...原创 2019-11-25 16:42:07 · 1051 阅读 · 0 评论 -
COM对象创建过程
在客户端需要调用COM组件时,通常调用windowAPI函数:STDAPI CoCreateInstance(REFCLSID rclsid, //创建的Com对象的类标识符(CLSID)LPUNKNOWN pUnkOuter, //指向接口IUnknown的指针DWORD dwClsContext, //运行可执行代码的上下文REFIID riid, //创建的Com对象的接...原创 2019-11-25 16:40:08 · 316 阅读 · 0 评论 -
COM组件宏观认识
一直搞不清楚COM到底是个什么东西,记录一些个人感想,可能很多错误的,慢慢消化.一.宏观认识:1.COM(组件对象模型)是一种标准,规则,要求,即即于建筑设计指标要求.2.语言无关性,因为是建立在二进制基础上的,也就是说客户调用COM组件时只能看到二进制而看不到未经编译的源代码程序,因此就不用管用什么语言编写的COM组件了.只要该语言编写的东西符合COM的标准就可以了.就相当于不用管房...原创 2019-11-25 16:26:20 · 205 阅读 · 0 评论 -
DOM应用---遍历网页中的元素
在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的表单(form)并枚举出表单域的属性为目标的,对于网页中的其它元素,比如图象、连接、脚本等等,应用同样的方法都可以轻松实现。二、网页的文档层次结构IE 浏览器,采用 DOM(原创 2015-01-30 12:02:06 · 1959 阅读 · 0 评论 -
COM编程入门不得不看的文章 :第一部分 什么是COM,如何使用COM
http://blog.csdn.net/wangqiulin123456/article/details/8026270目录(?)[-]COM到底是什么基本元素的定义创建一个新对象删除对象创建COM对象删除COM对象接下来将详细讨论IUnknown接口基本接口――IUnknown仔细做好串处理WideCharToMultiByte()wcs原创 2015-01-29 21:47:14 · 648 阅读 · 0 评论 -
COM组件设计与应用(四)——简单调用组件
目录(?)[-]一、前言二、组件的启动和释放三、内存分配和释放四、参数传递方向五、示例程序六、小结本文摘自:http://www.vckbase.net/index.php/wv/1211一、前言 同志们、朋友们、各位领导,大家好。 VCKBASE 不得了, 网友众多文章好。 组件设计怎原创 2015-01-29 21:52:32 · 1929 阅读 · 0 评论 -
COM组件设计与应用(二)——GUID和接口
本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8884.html一、前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了。那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后原创 2015-01-29 21:51:27 · 824 阅读 · 0 评论 -
COM组件设计与应用(三)——数据类型
本文摘自:http://www.vckbase.com/index.php/wv/1206 一、前言上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的知识,原创 2015-01-29 21:52:04 · 915 阅读 · 0 评论 -
COM编程入门不得不看的文章:第二部分 深入COM服务器
原文:http://www.codeproject.com/Articles/901/Introduction-to-COM-Part-II-Behind-the-Scenes-of-a 本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口(前一篇博文主要是COM编程的入门:COM编程入门不得不看的文章 :第一部分 什么是COM,如原创 2015-01-29 21:48:07 · 678 阅读 · 0 评论 -
Windows RT 应用程序开发介绍培训的讲义
http://www.cnblogs.com/lxconan/archive/2012/09/09/2677957.html最近从架构的角度做了一个 Windows 8 下 Metro Style 应用程序开发介绍的讲座。以下是讲稿。如有问题欢迎指正。下载地址:幻灯片附加说明1 概述这篇的标题叫做Windows RT Introduction而非W原创 2015-01-29 21:46:05 · 703 阅读 · 0 评论 -
COM组件设计与应用(一)——起源及复合文件
本文摘自:http://blog.vckbase.com/teacheryang/archive/2005/06/27/8883.html一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的原创 2015-01-29 21:50:27 · 1056 阅读 · 0 评论