自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

七七八八

不上不下不三不四

  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 Project : error PRJ0050: 未能注册输出。请确保您有修改注册表的相应权限。

好久没有做ActiveX控件了。今天编译一个ActiveX控件时,编译通过,注册时却出了错:Project : error PRJ0050: 未能注册输出。请确保您有修改注册表的相应权限。网络上搜了下,大概有3个原因:1. 如错误描述,没有权限2. 调用了别的dll,但是ocx所在目录和系统目录均无对应的dll3.ocx生成目录没有ilk,exp,pdb,lib等文件可惜的是,

2015-06-02 11:57:04 1563

原创 DDX双精度或浮点数为特定格式

一客户要求定制一对话框,显示几个数据,本以为几分钟就能搞定的事,却突然被一要求砸晕:客户要求其中一编辑框显示百分比,而且小数点必须是两位,也就是是说,如果是百分比为0的话,就要显示0.00。虽然情急之下用CString来关联编辑框,加上Format成员函数和scanf函数,也很快搞定。但也惊出一身冷汗,发现原来最简单的东西下面还有不简单啊。后仔细查阅资料,并翻看MFC源码,发现确实没有简单的方法来

2006-05-08 10:42:00 2917

原创 在MFC中实现自己的类厂

CoCreateInstance中调用CoGetClassObject获得IClassFactory(IClassFactory2),IClassFactory2又调用自己的CreateInstance或CreateInstanceLic建立控件实例。这里面类厂(IClassFactory)起到了非常重要的作用,特别是在MFC中,所有的控件都派生自COleControl(COleControl又派

2006-03-22 15:44:00 1887

原创 聚合,真正的聚合ActiveX控件

其实,个人以为,用聚合的方法来整合ActiveX控件并没有多少意思,还是用包容来得实在。不过,看到有许多人在msdn上问,而且也想看看聚合一个ActiveX控件的过程,就自己花了些时间用MFC来弄弄了。1.建立一个普通的MFC ActiveX控件tagc2. 缺省情况下,控件是从COleControl派生而来,所以已经有了自己的ActiveX控件的实现和自己相应的接口映射,这样 QueryInte

2006-03-08 16:30:00 3720 2

原创 调试桌面工具栏(桌面Band)时的一两个小技巧

记得有一次,突然在一个同事的机器上看到Windows Media Player放在了桌面任务栏上,眼前顿时一亮,曾决定自己要弄一个,不过当时公司有任务,过一段时间也就忘了。这几天,公司要搞一个小东西,突然想到了也许可以放在桌面任务栏(应该是工具栏吧)上,就开始着手编了起来。查了几个资料,发现也就实现几个接口而已,IDeskBand,IOleWithObject,IPersitStream,简单的很

2006-03-06 10:38:00 3654 7

原创 获得ActiveX控件所在网页的信息

基本上翻译自以下两文http://support.microsoft.com/kb/172763/EN-US/#appliestohttp://support.microsoft.com/kb/181678一. 获得所在IE页面的URL1.    获得IOleClientSite接口指针2.    调用IOleClientSite::GetMoniker()获得client site的monike

2006-02-14 14:41:00 2428

原创 关于多线程中传递MFC窗口类指针时ASSERT_VALID出错的另类解决

在多线程设计中,许多人为了省事,会将对话框类或其它类的指针传给工作线程,而在工作线程中调用该类的成员函数或成员变量等等。但是在Debug版本时,在某些情况下,特别是在工作线程中调用pWnd->UpdateData(FALSE)时,会出现错误。这个错误的原因网上有许多地方讲到了,但是,令人失望的是,讲得好的没几篇,都是非要讲什么线程模块状态什么的,让人看得云里雾里(不过,说实话,也就是从这些文章中才

2006-01-25 12:08:00 4752 3

原创 ActiveX控件的MFC设计之旅-第20步

网页知道的并不多,不过似乎关于ActiveX控件在网页中的问题在所有关于ActiveX控件的问题中所占的比重相当的大,而其中最常问的就是,网页中弹出来的安全警告。关于这个问题,并不复杂,网上搜索一下可以找到一大片的回答,真正的是天下文章一大抄了。参考资料:http://www.newebug.com/article/cpp/2207.shtmlhttp://www.ccw.com.cn/htm/a

2006-01-21 16:44:00 1915

原创 ActiveX控件的MFC设计之旅-第19步

当突然发现其实持久化控件属性可以用很简单的方法实现时,实在不是一件很舒服的事,因为也就意味着前面的努力白搞了;幸好,发现这种简单的方法还是有缺陷的,只能用于IPersistStream接口的实现,而无法用于IPersistPropertyBag接口的实现,对于接口对象的持久化有点麻烦,等等。不管怎样,本文还是来讲一讲这种简单的Serialize方法。先从源码分析开始:实现IPersistStrea

2006-01-20 13:23:00 2383

原创 ActiveX控件的MFC设计之旅-第18步

在VB设计ActiveX控件时,UserControl可以访问容器提供的扩展对象Extender,比如VB,就提供了Visible,Tag,Name等等标准的扩展属性和ToolTipText等等其它扩展属性。那么在用MFC设计ActiveX控件时,是否也能利用到这个扩展属性呢?能,COleControl提供了一个函数LPDISPATCH GetExtendedControl()用来获得扩展对象的I

2006-01-19 16:43:00 1793

原创 用自己的文件在运行时持久化控件属性

http://www.codeguru.com/cpp/com-tech/activex/controls/article.php/c5519/Persist ActiveX Controls At Runtime乍一看这标题,吓我一跳,运行时持久化控件,这怎么可能,等看过内容,发现原来是只有CArchive参数的代码段,估计是要用自己的文件来持久化的,纯粹误导嘛;不过这段内容本身还是蛮有意思的,

2006-01-19 13:27:00 1459

原创 ActiveX控件的MFC设计之旅-第17步

刚翻CodeGuru,发现一在运行时显示控件属性页的内容http://www.codeguru.com/cpp/com-tech/activex/controls/article.php/c2649/试着照它的样子做了下来。还有上一步的例子tppb1.添加HRESULT GetPages(CAUUID *pPages)HRESULT CTppbCtrl::GetPages(CAUUID *pPag

2006-01-19 11:16:00 2993

原创 ActiveX控件的MFC设计之旅-第16步

在VB的属性视图中,还有一个有意思的功能是将属性列在不同的类别,如,外观,行为,数据等等。这种功能是怎么来的,我自己的控件中的自定义的属性是不是也能列在这些类别中,我能不能创建自己的类别呢。很简单,在你的控件中实现一个接口ICategorizeProperties就可以了,这个接口只有两个方法        HRESULT MapPropertyToCategory(DISPID dispid,

2006-01-19 10:26:00 1621

原创 ActiveX控件的MFC设计之旅-第15步

在VB和类似的包容器在属性视图中显示控件的属性,特别是枚举类型的属性时,会有一个下拉按钮,当点击该按钮时,会弹出一个列表框,显示一些友好的文字,供用户选择。而对于某些特殊的属性,如字体等,还会弹出一个对话框来供用户设置属性。要添加这种功能,你必须实现IPerPropertyBrowsing接口, typedef struct tagCALPOLESTR { ULONG c

2006-01-18 16:04:00 1697

原创 ActiveX控件的MFC设计之旅-第14步

OLE自动化集合类 在VB中有下面的这种语法Set docs = Application.DocumentsFor Each doc in docs   MsgBox doc.TitleNext在这里docs就是一个集合类,VB中还专门提供了一个Collection对象,可以组建你自己的集合类 当然,集合类还有许多特征,一个集合类都会有下面的几个方法或属性 Count只读属性 Item方

2006-01-17 16:20:00 2384

原创 ActiveX控件的MFC设计之旅-第13步

这一步我们将持久化一个接口,可能有些难度,因为用到了很多前面讲过的东西。在第1步中,我们就实现了一个具有层次结构的控件,但是,我们并没有给这个控件提供持久化,更不用说,持久化控件的所有层次了。在上一步中,实现了一个标准的图片接口(IPictureDisp)的持久化在这一步中,会综合第一步和上一步中的内容,实现一个我们自定义的接口的持久化。仍旧采用上一步中的Topp例子(和上一步的内容基本独立,可以

2006-01-16 15:29:00 2723

原创 ActiveX控件的MFC设计之旅-第12步

通常情况下,内制的图片属性页CLSID_CPicturePropPage能够满足需要,但有时候,也许你想有你自己的属性页来设置你的图片(IPictureDisp)类型的属性,本文将讲述如何做一个图片属性页 以上文中的例子为例(和上面的例子基本独立,可以用新的例子来做,只是懒得弄了) 1.添加Picture属性(get/set methods,LPPICTUREDISP类型),添加成员变量CPi

2006-01-14 12:32:00 2514

原创 ActiveX控件的MFC设计之旅-第11步

一般情况下,我们在设计状态下设计控件时,会打开属性页,然后输入几个值,来初始化控件,然后关闭属性页,这样在属性页中输入的值就保存起来了,然后下次再打开属性页,这些值又会加载进来,这个过程有个术语叫持久化。从表面上看,控件的持久化是在属性页中完成的呢,但事实上控件的持久化需要各方的配合,最终是由控件的容器来完成真正的持久化操作(保存或加载到某种介质,如磁盘文件等)。属性页在控件的持久化中并没有做多少

2006-01-13 14:00:00 2607

原创 ActiveX控件的MFC设计之旅-第10步

在上一步中我们实际是通过IDispatch接口的Invoke方法来访问控件的属性和方法的,虽然有COleDispatchDriver和其它一些辅助函数,但还是有些繁杂,能不能直接得到控件对象的指针,这样就可以直接访问控件了,甚至于控件的内部变量了?答案是肯定了。我们的控件派生自COleControl,COleControl派生自CWnd,CWnd又派生自CCmdTarget,我们的IDispatc

2006-01-12 16:19:00 2267

原创 ActiveX控件的MFC设计之旅-第9步

痛苦,已经写完了,Firefox报了错,只得重来。关于属性页,这里先翻译msdn上一段关于属性页的介绍。用户通过属性页来操作控件的属性,用户可以设置一个或多个属性页,每个属性页上可以显示控件的某些属性。这些属性既可以来自一个控件,也可以来自多个控件,也就是说一个属性页上可以显示多个控件的属性。每个ActiveX控件属性页都是一个进程内对象,拥有它自己的CLSID,每个属性页均实现了IPropert

2006-01-12 13:27:00 3734 1

原创 ActiveX控件中全局变量的一种用法

在一个程序中,用到了好几个相同控件的实例,现在希望能通过某种方法来唯一的标志这些控件实例,以便能为每一个控件提供一个正确的配置文件,这是件很容易的事,但问题是并不希望控件增加什么ID,Name之类的属性,而是希望能在控件内部自行的标志。这是我一个朋友问我的。初看了下,感觉这不太可能吧,后来,想到COleControl中有一个AmbientDisplayName,因此建议给这位朋友了。应该说,在VB

2006-01-11 12:34:00 2830

原创 动态添加的ActiveX控件如何响应事件

今天在csdn上看到一朋友问如何响应动态添加的控件的事件,搜索资料,发现对于一般的应用来说,使用ON_EVENT_RANGE就足以满足需要了,不过,还是希望能够更灵活的实现动态的响应,所以又经过对MFC源码一番探查,发现还是可以的,而且应该也不是很复杂的,下面分别来说说这两种方法例程为Tdax,对话框程序,使用了Microsoft UpDown Control 6.0控件作为控件,添加了Mouse

2006-01-09 16:38:00 7727 4

原创 ActiveX控件的MFC设计之旅-第8步

下面是jiangsheng(蒋晟.MSMVP2004Jan)老大的精彩回贴:    Knowledge  Base  Article  Q157437:  "Fireev.exe Fires  Events  from  a  Second  Thread"   http://support.microsoft.com/support/kb/articles/q157/4/37

2006-01-06 15:46:00 2007

原创 ActiveX控件的MFC设计之旅-第7步

这一步很需要一些COM基础,因为没有这个基础的话,可能会有为什么要做这个,有必要吗,之类的疑问的。这回我们要看看双接口,为MFC设计的控件添加双接口(双接口是什么就不解释了)。这里参考了msdn中的例子acdual,并且应用了例子里面的一些宏,这个例子可以直接搜索msdn找到,还有TN065: Dual-Interface Support for OLE Automation Servers参考。

2006-01-04 12:47:00 2514

原创 ActiveX控件的MFC设计之旅-第6步

这一步本来要往上走的,因为感觉上面还有很多风景,可是一次意外,发现我的msdn竟然无法找到网上流行的SafeArrayCreateEx这个函数,大感意外,因此就决定继续横爬了,来看看怎么用SAFEARRAY包装自定义结构了。开始之前,先推荐一文章VB真是想不到系列之四:VB指针葵花宝典之SafeArray网址就不提供了,网上搜搜就找到了,绝对不是做广告的,只是觉得挺有意思的,从VB的眼光来看SAF

2005-12-30 14:19:00 2307 2

原创 ActiveX控件的MFC设计之旅-第5步

到目前为止,我们的例子中都没有一点Grid的影子,这趟改造一下程序,稍微能象点样,顺便加上一个也蛮流行的话题,传递数组问题,或者说是SAFEARRAY吧我们先来看看SAFEARRAY和它的操作函数,从msdn上翻译了那么一段下来SAFEARRAY的定义如下struct SAFEARRAY {    WORD cDims;    WORD fFeatures;   

2005-12-30 10:27:00 2373 1

原创 ActiveX控件的MFC设计之旅-第4步

那么这回就来看一下网上说的挺多的传递自定义结构的问题吧,这个问题在早期不支持DCOM的操作系统中是没办法解决的,不过就目前的流行操作系统来说,应该是不成问题的。其实网上讨论很多的,不过还是推荐一些网址:第一个是微软的msdn,应该蛮正宗的吧,http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/Aut

2005-12-29 13:55:00 2220 2

原创 ActiveX控件的MFC设计之旅-第3步

前面说要转向属性页,突然想起好象还有一个比较有意思的东东没看,所以就先不转了,再往前走那么一小步吧这次要看的是枚举在VB中,我们会看到,好多控件在编辑代码的时候,会列出某一属性,或方法参数的许多可选值来,如ListView1.BorderStyle =写到这时就会列出来ccFixedSingle和ccNone两个可选项来它们是怎么来的呢,是的,就是枚举在C++中,枚举的使用是很简单的,抄msdn上

2005-12-28 17:00:00 2009

原创 ActiveX的MFC设计之旅-第2步

我晕,就因为我没写摘要,也不至于把我写的这一大段给全删没了吧,这Blog也做的太菜了吧哎,只好重来了上一步咱走到哪了,哦,对了,就是要能在VB编辑时列出LiteGrid的Cell对象的属性。首先,为什么列不出来,那是因为我们的Cell属性的返回类型是LPDISPATCH,也就是IDispatch*,IDispatch是一通用接口,好象是没有Text之类的属性的了所以,很简单的,把LPDISPATC

2005-12-28 15:42:00 1972

原创 ActiveX控件的MFC设计之旅

在csdn中碰到了好几个问使用MFC设计ActiveX控件的朋友,联想到自己以前也干过这事,突然想写些文章,介绍介绍我所知道的一些设计技巧。无奈,千头万绪,不知如何着手,最后,决定干脆设计一控件,将在控件中碰到的一些问题,一些方法写出来。想一想,就设计一网格控件吧,取名为LiteGrid。(忘了说了,咱这文稍微还是有点深度的,如果各位想看怎么添加属性,事件的,抱歉了,本文不提供)第一个要加的酷酷的

2005-12-28 14:32:00 3248

原创 UUID生成代码

UUID Reference Implementation/*** Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.** Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &** Digital Equipment Corporatio

2005-01-28 09:10:00 3731 1

原创 反病毒引擎设计

摘自赛迪网      作者:NJUE                                                                      反病毒引擎设计之绪论篇 1.绪论 本文研究的主要内容正如其题目所示是设计并编写一个先进的反病毒引擎。首先需要对这“先进”二字做一个解释,何为“先进”?众所周知,传统的反病毒软件使用的是基于特征码的静态扫描技术,即在文件中寻找

2004-07-19 14:07:00 2696 1

原创 跟踪API

今天无意中发现彭春华写的一些关于跟踪API的方法,特别是调试函数的使用,惊叹! 以前居然没有发现!                                                                     跟踪监视方案概览当我们对某一目标程序进行API函数的跟踪监视分析时,根据跟踪监视的目标,基本上有以下几种途径实现对API函数的跟踪监视:  写Log记录分析 如果

2004-07-19 11:17:00 2588 1

原创 兆头不好啊

打开csdn,发现Blog可以用了,赶紧激活登录,准备写文章庆祝一下! 谁曾想 555555555555555555555555555555555555555555555555555 一点文章正文的输入框,弹出错误框,点详细资料发现JScript出错 问问csdn上专家,未果 无法,死马当活马医,升级我的5.0IE到6.0,同时升级Script为5.6 守得云开见天日啊,惴惴不安,点了一下输入框,

2004-06-23 10:48:00 923

crc算法代码(4-32位)

各种crc算法代码,包括直接计算和查表计算,以及查表生成代码

2021-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除