
ATL/COM
郁闷阳光
作为码农,建此博客的目的是记录工作历程中的点点滴滴,分享工作中的感悟、思考。
展开
-
VC++内部COM插件的编程实现
一、闲聊首先,在这里向前段时间没来得及回复你们问题的朋友们说声对不起了,这段时间工作实在太忙,我快倒!哈哈!好了,让我们转入正题,今天要谈的话题是COM,稍微深入一点,不知道大家用过C++Test或者Visual Assistant(可到VC知识库工具栏目下载)之类的软件没有转载 2011-10-18 10:34:13 · 697 阅读 · 0 评论 -
在VC++程序中接收COM事件
接收事件是COM客户端中非常重要的功能。但是除了在MFC中能够接收控件所发出的事件以外,VC++不能自动生成接收事件的代码。为了接收普通COM的事件,必须自行编写接收事件的代码。本文通过一个具体的实例说明如何在VC++程序中通过ATL编写接收COM事件的代码,当然,程序本身不必是ATL项目。1 COM事件原理COM对象通过连接点实现发送事件的功能。每个连接点都规定了接收事件用的接口,而转载 2012-03-14 13:37:45 · 1790 阅读 · 0 评论 -
COM组件如何调试
在开发大型程序的时候,一般我们会将程序的功能模块化,常见的做法是采用COM组件,区别于一般的动态链接库,他的优点是毋庸置疑的,最大的特点在于它可以自己注册以及反注册,这样我们在创建相应的组件对象时就比较方面,不用考虑路径什么的,只要在电脑上已经注册过,则可以成功使用。由于COM组件不是EXE,因此,它不能独立执行,必须附加在一定的应用程序上,通过设置相应的参数,就可以进行调试。依次打开“调试”原创 2012-03-29 17:34:01 · 5173 阅读 · 0 评论 -
COM组件的调用方法总结
需求:1.创建myCom.dll,该COM只有一个组件,两个接口: IGetRes--方法Hello(), IGetResEx--方法HelloEx()2.在工程中导入组件或类型库 #import "组件所在目录myCom.dll" no_namespace或 #import "类型库所在目录myCom.tlb" using namesp转载 2012-01-13 17:28:18 · 939 阅读 · 0 评论 -
如何在对话框中嵌入浏览器
介绍利用微软提供的浏览器控件,可以让你的程序简单的实现浏览器功能。通过本例子,你可以熟悉它的常用方法。首先根据向导,生成基于对话框的应用程序。插入ACTIVE控件首先在你的对话框上面点击右键. 弹出菜单,选择插入ACTIVE控件.然后选择 Microsoft Web Browser ,点击 OK.然后为该控件绑定一个成员变量m_WebBrowserCtr原创 2011-10-28 19:01:41 · 716 阅读 · 0 评论 -
ATL和MFC,用哪种框架来创建ActiveX控件:第四部分
为控件添加功能代码 MFC和ATL在功能代码的处理上是相似的。在每一个框架里,实现控件的类具有一个名为OnDraw的虚函数。你只需将你的功能代码添加到OnDraw函数里。然而,在各框架里,OnDraw函数得工作有所不同。 MFC的OnDraw在两种上转载 2011-10-18 16:55:44 · 900 阅读 · 0 评论 -
UNICODE 编程入门
简介 如果你编写的程序是针对非英语国家的用户,如中国、日本、东欧和中东地区,那么你一定要熟悉 UNICODE 字符集。尤其是用 Visual C++/MFC 编写针对上述国家和地区的用户的程序时,如果你想让自己的应用程序得到更广泛的用户,那么必须考虑代码 UNICODE原创 2011-10-18 09:33:29 · 357 阅读 · 0 评论 -
COM自动化,第一部分
在这部分和以后的内容中,我们将深入COM 自动化世界。希望用一个简要的专栏来研究这个题目。我们将谈论怎样进行自动化(IDispatch)调用和处理自动化对象需要做什么。然后,我们将讨论用于自动化的特殊COM数据类型和研究双重接口。 自动化(从前叫做OLE自动化)是一转载 2011-10-18 17:16:47 · 1079 阅读 · 0 评论 -
ATL和MFC,用哪种框架来创建ActiveX控件:第三部分
关于例子应用 这里我将使用的例子是一个通过一个钩子(hook)程序监控消息流的ActiveX控件,它实时显示消息流图。这两个控件实际上有着相同的功能。它们都把图表送到屏幕。它们都带流入接口以便包容器能通知控件开始和停止该图表。它们都支持图表线的颜色和消息间隔长度作为可以转载 2011-10-18 16:53:26 · 1087 阅读 · 0 评论 -
ATL和MFC,用哪种框架来创建ActiveX控件:第二部分
ATL基本的COM支持 ATL的目标是使开发者不必重写IUnknown, IDispatch, IClassFactory接口,并且在把常规的DLL和EXE变成基于COM的DLL和EXE时,也不必重写其分支部分。在这个方面,ATL是一个比MFC精简得多的框架,它设计和生转载 2011-10-18 16:52:06 · 478 阅读 · 0 评论 -
IUnknown—COM和MFC
问题: 我用MFC编写COM程序有一段时间了,知道如何使用宏和嵌套类,以及如何在嵌套类中处理IUnknown接口,但对IUnknown的使用还是不太老练。假设CMyClass是一个COM服务器,从CCmdTarget派生。它实现了IMyInterface。C转载 2011-10-18 16:27:39 · 783 阅读 · 0 评论 -
用纯粹的C++编写COM组件
本文提供一个完全用C++实现的进程内(DLL)COM服务器,不要ATL或MFC提供任何支持。用这种方式编写COM对象可以让你深入地洞察到COM处理进程内服务器的方法以及COM是如何创建类工厂的。利用本文提供的这个简单框架你可以实现很基本的COM组件,如外壳扩展(Shell Ext原创 2011-10-18 16:35:40 · 453 阅读 · 0 评论 -
关于几个HTML文档接口的使用探讨
问题: 在使用Active Accessibility SDK的过程中,我从某个窗口的句柄来获得IHTMLDocument2指针。有没有什么方法可以从IHTMLDocument2指针来获得IWebBrowser2指针?我用QueryInterface在两个转载 2011-10-18 16:00:38 · 1100 阅读 · 0 评论 -
OLE字符串
一、概述 32位宽字符串,前面32位为长度,尾部以0结束 二、相关定义 BSTR (又称Basic 类型字符串) LPOLESTR 相关宏定义: typedef unsigned short wchar_t; (unsigned short为两字节)原创 2011-10-18 09:18:40 · 757 阅读 · 0 评论 -
使用ActiveX控件的问题
自从Microsoft最早在1996年3月的Internet专业开发人员研讨会上提出ActiveX一词以来,到今天已有无数公司的无数产品中涉及了ActiveX技术,而作为ActiveX技术之一的ActiveX控件,更是得到广大开发者的青睐。那么,到底什么是ActiveX控件呢?转载 2011-10-19 08:53:23 · 703 阅读 · 0 评论 -
ATL和MFC,用哪种框架来创建ActiveX控件:第一部分
本文假定你熟悉MFC, ATL, and COM 摘要:目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这转载 2011-10-18 16:51:32 · 506 阅读 · 0 评论 -
COM编程入门
本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。 COM即组件对象模型,是Component Object Mode翻译 2011-10-18 16:33:43 · 399 阅读 · 0 评论 -
COleDispatchDriver
这段时间研究mapx地图控件,里面的类都是基于COleDispatchDriver,因此,需要了解COleDispatchDriver这个类,COleDispatchDriver没有基类。COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDispat转载 2012-05-29 09:02:50 · 5918 阅读 · 0 评论