随笔分类 - com
摘要:IClassFactory的作用是创建COM组件。我们已经知道COM组件实际上就是一个类,那我们平常是怎么实例化一个类对象的?是用‘new’命令!很简单吧,COM组件也一样如此。但是谁来new它呢?不可能是客户程序,因为客户程序不可能知道组件的类名字,如果客户知道组件的类名字那组件的可重用性就要打个大大的折扣了,事实上客户程序只不过知道一个代表着组件的128位的数字串而已,...
阅读全文
摘要:(1)引用 tlb 文件,如果接口为FUN,则自动生成默认IFunPtr指针#import "Demo2.tlb"IFunPtr spFun;HRESULT hr = spFun.CreateInstance(__uuidof(Fun));ASSERT(SUCCEEDED( hr ));long iRet=spFun->Add(10,10);(2)引用库类型库自动生成包装类IDispSimp...
阅读全文
摘要:COM组件设计与应用(十四)事件和通知(vc.net)作者:杨老师下载源代码一、前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者; 我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者; 我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者; ... ... ... ... 本回书开始话说 COM 的...
阅读全文
摘要:COM组件设计与应用(十三)事件和通知(VC6.0)作者:杨老师下载源代码一、前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者; 我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者; 我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者; ... ... ... ... 本回书开始话说 COM 的事...
阅读全文
摘要:COM组件设计与应用(十二)错误与异常处理作者:杨老师下载源代码一、前言 程序设计中,错误处理必不可少,而且通常要占用很大的篇幅。本回书着落在 COM 中的错误(异常)的处理方法。 在组件程序中,如果遇到错误,一般有两个方式进行处理。二、简单返回 对于比较简单的错误,直接返回表示错误原因的 HRESULT。比如下面几个就是常见的错误值: E_INVALIDARG0x80070057参数错误...
阅读全文
摘要:COM组件设计与应用(十)IDispatch 接口 for vc.net作者:杨老师下载源代码 一、前言 终于写到了第十回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用、非常有用、非常精彩的一个 COM 功能。由于 WORD、EXCEL 等 OFFICE 软件提供了“宏”的功能,就连我们使用的VC开发环境也提供了“宏R...
阅读全文
摘要:COM组件设计与应用(九)IDispatch 接口 for vc6.0作者:杨老师下载源代码 一、前言 终于写到了第九回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用、非常有用、非常精彩的一个 COM 功能。由于 WORD、EXCEL 等 OFFICE 软件提供了“宏”的功能,就连我们使用的VC开发环境也提供了“宏̶...
阅读全文
摘要:COM组件设计与应用(八)实现多接口作者:杨老师下载源代码 一、前言 从第五回开始到第七回,咱们用 ATL 写了一个简单的 COM 组件,之所以说简单,是因为在组件中,只实现了一个自定义(custom)的接口 IFun。当然如果想偷懒的话,我们可以把 200 个函数都加到这一个接口中, 果真如此的话,恐怕就没有人喜欢使用我们这个组件了。一个组件既然可以提供多个接口,那么我们在设计的时候,就应该按照...
阅读全文
摘要:COM 组件设计与应用(七)编译、注册、调用作者:杨老师一、前言 上两回中,咱们用 ATL 写了第一个 COM 组件程序,这回中,主要介绍编译、注册和调用方法。示例程序你已经下载了吗?如果还没有下载,vc6.0 的用户点这里,vc.net 的用户点这里。二、关于编译 2-1 最小依赖 “最小依赖”,表示编译器会把 ATL 中必须使用的一些函数静态连接到目标程序中。这样...
阅读全文
摘要:COM 组件设计与应用(六)用 ATL 写第一个组件作者:杨老师下载源代码一、前言 1、与 《COM 组件设计与应用(五)》的内容基本一致。但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对。 2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完...
阅读全文
摘要:COM 组件设计与应用(五)用 ATL 写第一个组件作者:杨老师下载源代码一、前言 1、如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003; 2、如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容; 3、如果你在使用 vc.net(ATL 7.0)请阅读下回内容;(当然读读本文内容也不错) 4、这第一个组件,除了所有 COM 组件必须的 IU...
阅读全文
摘要:COM组件设计与应用(四)简单调用组件作者:杨老师一、前言 同志们、朋友们、各位领导,大家好。 VCKBASE 不得了, 网友众多文章好。 组件设计怎么学? 知识库里闷头找! 摘自---杨老师打油集录 在 VCKBASE 的顶力支持下,在各位网友回帖的鼓励下,我才能顺利完成系列论文的前三回。书到本回,我们终于开始写代码啦。写点啥那?恩,有了!咱们先从如何调用现成的简单的组件开始吧...
阅读全文
摘要:COM组件设计与应用(三)数据类型作者:杨老师一、前言 上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的...
阅读全文
摘要:COM组件设计与应用(二)GUID 和 接口作者:杨老师一、前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了。那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后,又如何让 Excel 自己去读入、解析、显示 xls 数据呢?二、CLSID 概念 有一个非常简单...
阅读全文
摘要:COM 组件设计与应用(一)起源及复合文件作者:杨老师一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的好学生,我开始在书店里“踅摸”...
阅读全文

浙公网安备 33010602011771号