- 博客(70)
- 资源 (1)
- 收藏
- 关注

原创 ATL中的创建对象模型
本文给出了在ATL环境下创建对象型的方法,适用于VC6、VC8首先,设定集合类为XCollection,子对象为XItem。第一步:添加一个ATL Simple Objecct,起名为XItem。第二步:修改IDL文件,添加IXCollection接口。接口声明如下: interface IXItem; //向前声明 [ object, uuid(4807AD05-1CCF-
2009-12-30 13:05:00
1045

原创 网页源码过滤
本例通过Mime filter技术对网页源码进行过滤,本文部分摘自《HTML代码过滤技术》 要实现HTML代码过滤必需注册一个或多个MIME过滤器(Pluggable MIME Filter)。MIME过滤器是一个COM对象,必需实现IInternetProtocolSink和IInternetProtocol接口。 在实现MIME过滤器对象之前,先看一下《Pl
2006-06-27 09:22:00
13452
9
原创 IDL中引用其它IDL中的interface类型
很多时候,我们在编写组件时,会对原有的组件进行包装使用,而被包装的组件中的接口、类型很繁琐。花费太多的时间重新定义这些接口、类型,对于我们实现简单的功能来说,有些不合算,因此我们重用原组件中的接口、类型。步骤如下:1 在IDL中include "*.IDL"2 将使用MIDL生成的*.h文件放到工程目录下。3 在调用CLSID、IID的文件中#include "*_i.c"文件
2012-03-28 00:32:59
2322
转载 Delphi中COM自动化对象中使用事件
unit SrvUnit2;interfaceuses ComObj, ActiveX, AxCtrls, Classes, SrvEvent_TLB, StdVcl, Srvunit1;type TSimpleEventServer = class(TAutoObject, IConnectionPointContainer, ISimpleEventServer)
2012-02-01 15:20:27
1407
转载 自绘WTL的CComboBox控件
这次自绘这个CComboBox控件,真是费了很长的时间,网上没找着一个合适的例子,不过还好总算给弄出来了,下面总结一下:1,依然是继承CComboBox 和COwnerDraw两个类.然后和其他的OwnerDraw的用法基本一样(1)在父窗口的MSG_MAP中 添加REFLECT_NOTIFICATIONS() (2)在自己的新类的MSG_MAP中添加 CHAIN_MSG_MAP_ALT(COwnerDraw, 1) DEFAULT_REFLECTION_HANDLER() 并重载Dra
2010-09-09 15:21:00
1504
转载 两个windows API
在应用程序类中,有个InitInstance()函数,<br />: 在这个函数中假如这样的两行:<br />: RegisterShellFileType();<br />: EnableShellOpen();<br />RegisterShellFileType()作用就是允许文件关联。如notepad可以打开text文本文件,<br />如果你创建了一个新的文件类型,操作系统默认以你的程序打开你创建的文件类型。<br />EnableShellOpen():当你拖动文件到你程序时,可以打开相应的文
2010-09-09 15:20:00
808
转载 自绘WTL的CListViewCtrl
<br />CListViewCtrl对应MFC中的是CListCtrl, CListViewCtrl的自绘本身绘制方法,和其他带有OwnerDraw(我的意思是从COwnerDraw类继承过来的) 的绘制方法基本相同,不过和其他控件相比其中有两个问题还是很棘手的,1,其中就是ListItem的高度要在MeasureItem的函数中修改,例子代码void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)<br /> {<br /> lpMeasur
2010-09-09 15:18:00
1612
转载 为ATL Control添加事件
Step 5: Adding an EventVisual C++ Concepts: Adding FunctionalityStep 5: Adding an EventIn this step, you will add a ClickIn and a ClickOut event to your ATL control. You will fire the Cl
2009-12-17 11:04:00
1775
原创 利用WPS的“邮件合并”功能打印工资单
1. 利用 WPS文字实现邮件合并WPS文字中提供了一系列丰富的API支持邮件合并的操作。接下来通过WPS API实现打印工资单的功能,以进一步了解WPS文字的“邮件合并”功能。1.1. 建立数据源在开始进行邮件合并操作之前,必须先建立数据源,也就是要先创建“收件人列表”文档。下面用WPS表格创建一个名为“工资单.et”的数据源文件,保存于C盘根目录下,文件内容如图1所示:图
2009-12-02 10:43:00
3755
原创 C#调用WPS的两种方式
关于WPS集成大家都了解MS Office在国内办公领域的位置,不过最近国内很多机关、部门、公司都选择了金山的WPS Office。我也在项目中多次碰到与WPS Office集成的问题。本以为需要花大量时间了解WPS Office API以及其对办公系统的支持力,但发现WPS Office API、对象模型与MS Office惊人的相似。此外,WPS本身也是一个庞大的OLE控件,支持VBA
2009-12-02 09:32:00
22968
3
原创 WPS插件的实现和发布
WPS插件的实现和发布1. 关于WPS插件关于WPS插件基于WPS的二次开发有很多方法,很多用户还习惯用WORD的VBA的方式来开发。方便快捷的VBA开发方式带来便捷的同时也带来了安全隐患。现在的宏病毒数不胜数,给用户带来很多麻烦。从安全的角度考虑WPS Office 2005 虽然支持VBA开发,但是没有集成VBA(需要另行安装VBA)。为了继续享受VBA快速编程的同时又要保
2009-12-01 13:20:00
11357
1
原创 转:如何在托管环境下释放COM对象
Shanny同学介绍了DataGridView数据导出到Excel的几个方法,其中讲到的使用Microsoft.Office.Core.dll即Microsoft Office 11.0 Object Library.代码大概如下:private void ExecuteTransfer(){ ApplicationClass app; try { app = new Applicati
2009-08-10 00:26:00
1972
转载 怎样屏蔽系统热键
怎样屏蔽系统热键在程序开发过程中,为了达到一些特殊的要求,有时需要屏蔽系统热键。这些系统热键包括 Alt+Tab、Ctrl+Alt+Del、Alt+Esc、Ctrl+Esc、Win 键等。由于屏蔽系统热键涉及到系统的安全,所以微软并不推荐这样做,我们只能在一些未公开的文档中去探究它。下面我们分三种情况来讨论屏蔽系统热键的方法。一、 在win95/win98操作
2009-08-06 10:22:00
2553
原创 复合文档操作-读写结构体
存储结构体:#include "stdafx.h"#include #define RESULT_OK(hr) if (!SUCCEEDED(hr)) goto Exit0;#define RELEASE_INTERFACE(X) if (X) { (X)->Release(); (X) = NULL; }class TempData{public:
2009-05-19 09:36:00
1711
1
原创 在SQL server 2000 中 如何更新表中的text、ntext 或 image 字段信息
在SQL server 2000 中 如何更新表中的text、ntext 或 image 字段信息 http://www.cnblogs.com/macroxu-1982/archive/2007/12/07/640725.html
2008-08-25 15:49:00
1387
原创 WTL8 两个小问题的解决
最近在学WTL,资料比较少了(特别是实践性的)发现了两个小问题,特此记录。Q:Error is:"!InlineIsEqualGUID(*m_plibid, GUID_NULL) && "Did you forget to pass the LIBID to CComModule::Init?"A:This can be solved one of two w
2008-07-31 11:18:00
1795
2
原创 做个有责任心的男人
做个有责任的男人说到责任这个词,让人感到沉重。每当人生中重大、突发事件发生时,导致生命中那些关键词优先级进行重新排列时,这个词就会出现。我的朋友因为失恋,剁掉了自己的手指。整夜里,除伤心之外,对人的思维、心理的进行了长长思考。对于自己身体的残害需要很大的勇气,失恋后要面对一个人的生活,也同进需要勇气。它选择了前者。准确的说,它选择了两者。我想起了那句歌词“到底在生与死之间哪个才是真的勇敢?
2008-07-11 09:34:00
1633
2
原创 ATL学习实践(VC8)-用CWindowImpl实现窗口
用CWindowImpl实现窗口一、新建工程。在VC8创建一个ATL Project工程。名称为ATL_Test,,Server Type为Executable(EXE),完成。 二、新建窗口类。添加一个C++类,做为窗口类。向导中填写类名CMyWindow,基类CWindowImpl,OK。在stdafx.h中包含头文件:#include 生成代码如下://version
2008-04-09 11:54:00
6160
原创 VS2005下安装WTL8.0
安装WTL8.0过程:1.解压WTL_80.exe到目录C:/WTL802.打开cmd,进入C:/WTL80/AppWiz目录,执行setup80.js(VS2003对应的是setup71.js)3.将C:/WTL80/include下的头文件拷贝到VC的include目录D:/Program Files/Microsoft Visual Studio 8/VC/include
2008-04-08 09:40:00
1607
转载 COM+,组件配置,实现,VB
http://www.aspok.com/user1/fyymm001/archives/2007/9452.shtml
2008-01-21 10:42:00
723
原创 关于insertAdjacentHTML插入脚本
调用insertAdjacentHTML插入JS时注意的几点:1、要用defer属性标识2、前要加3、如果要调用刚插入脚本,则调用部分要用单独的标签插入。vc调用insertAdjacentHTML的正确代码片断:CComBSTR bstrHTMLText("defer src=/"http://127.0.0.1/ttt.js/">defer>Msg();"); pBody->i
2007-09-29 15:17:00
4517
转载 WinXP系统网络不能互访的七大解决之道
WinXP系统网络不能互访的七大解决之道 相信很多人都有和笔者一样的经历,由WIN XP构成的网络所有设置和由WIN 2000构成的完全一样,但还是出现了根本不能访问的情况,笔者认为这主要是因为XP的安全设置和2000不一样所导致。针对这个问题笔者在网上查了一些资料,并将各种网上提供的常见解决方法做了相应测试,现在整理介绍给大家,希望能对遇到此问题的网友有所帮助,并请高手继续指点。部分内容摘自
2007-09-19 09:22:00
964
转载 正确地做事与做正确的事同样重要
正确地做事与做正确的事同样重要一位软件工程师的6年总结作者:成晓旭(声明:欢迎转载,请保证文章的完整性)“又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方
2007-09-10 17:05:00
1030
1
原创 xls批量导入sql server
Option Compare DatabaseType ServerInfo Name As String UID As String PWD As StringEnd TypeType DBInfo SVInfo As ServerInfo DBName As StringEnd Type---------------------------------
2007-08-28 14:20:00
1711
原创 VBA宏将带分隔符txt文件另存为xls格式
将带分隔符txt文件另存为xls格式 功能:批量另存为一个目录下的XLS文件srcPath 源目录desPath 目标目录---------------------------------------Sub SaveAsExcelInPath(srcPath As String, desPath As String) If Right(srcPath, 1)
2007-08-28 14:10:00
2841
原创 双链表
双向链表(Double Linked List) 双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域prior。注意: ①双链表由头指针head惟一确定的。 ②带头结点的双链表的某些运算变得方便。 ③将头结点和尾结点链接起来,为双(向)循环链表。头文件: //双链表结点类template class dno
2007-05-18 00:30:00
878
原创 单链表
链接方式存储的线性表简称为链表(Linked List)。 链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))注意: ①链
2007-05-16 00:53:00
1008
原创 顺序表
顺序存储方法 即把线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里的方法。 顺序表(Sequential List) 用顺序存储方法存储的线性表简称为顺序表(Sequential List)。头文件:#define LISTSIZE 100template class list{ T data[LISTSIZE]; int length; public: //初始
2007-05-13 23:11:00
910
转载 栈与堆的区别
原文:栈与堆的区别1。 内存分配方面:堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结 点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句才能正确的释放本内存空间。栈:在函数调用时第一个进栈的主函数中的下一条指
2007-05-13 12:22:00
981
1
原创 郑钧和他的聪明太太
此文转自“真感音乐”(http://www.zhengjun.com)原文地址:http://www.zhengjun.com/bbs/showtopic.asp?id=3844&forumid=1&page=42郑钧就是那种特立独行的男人,在他的心里,或许只有自己的音乐,他没有多余的心思去揣摩身边的人,去考虑别人的感受。面对这 样的男人,我选择了一种最聪明的交往方式——我学会了理财——试想一下,
2007-04-29 16:01:00
4225
转载 ASP对象总结(二)
ASP对象总结(二)本文来自http://www.kkee.cn/ Server对象1.Server对象的属性ScriptTimeout整 型。缺省值为90。设置或返回页面的脚本在服务器退出执行和报告一个错误之前可以执行的时间(秒数)。达到该值后将自动停止页面的执行,并从内存中删除包 含可能进入死循环的错误的页面或者是那些长时间等待其他资源的网页。这会防止服务器因存在错误的页面而过载。对于运行时间
2007-04-19 23:20:00
1033
转载 ASP对象总结(一)
ASP对象总结(一)[转www.kkee.cn]本文来自http://www.kkee.cn/ Request对象1.Request对象的集合ClientCertificate当客户端访问一个页面或其他资源时,用来向服务器表明身份的客户证书的所有字段或条目的数值集合,每个成员均是只读Cookies根据用户的请求,用户系统发出的所有cookie的值的集合,这些Cookie仅对相应的域有效,每个成员均
2007-04-19 23:17:00
976
转载 列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息
SELECT (case when a.colorder=1 then d.name else end)表名, a.colorder 字段序号, a.name 字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else end) 标识, (
2007-04-16 21:21:00
983
原创 CBT钩子实现解决程序间的冲突
可能在运行一个程序A时,将运行的程序与正在运行的某个程序B冲突。下面用一个CBT钩子实现当一个程序A启动时,关闭与本程序冲突的其它程序B。1、 首先写一个动态链接库CBTHooks。它实现一个全局CBT钩子监视程序A的启动(实际上是监视程序A中某窗口类的创建)。2、 创建一个名为TestHook的MFC EXE程序来为系统安装钩子。CBTHooks: 声明全局变量:stat
2007-01-09 22:13:00
2741
原创 寓言两则
一、花岗岩与佛像同处在一间庙宇,人们常常踩着花岗岩去拜佛像。花岗岩觉得很不公平,就对佛像说:“我们都是从一个采石场里出来的,为什么人们总是将我踩在脚底而去跪拜你呢?”佛像笑了笑说:“从采石场出来时,你只经过了四刀就可以成形,而我是经过千刀万剐才成的佛。”二、我:“为什么你对我这么不公平,让我失恋,让我学业无成,让我患上疾病,让我身无分文!!!” 上帝:“你是一个自大又自卑,心
2006-12-01 11:38:00
1026
原创 为MFC 和 ATL控件创建签署的CAB文件
为MFC 和 ATL控件创建签署的CAB文件如果您计划通过Internet销售 MFC控件和ATL 控件,您应该将其打包成签署的小巧(Cabinet -CAB) 文件。签署文件确保用户下载您的控件时源代码是安全的。一个CAB文件包含一个您的控件及其安装信息(比如,都需要哪些动态链接库DLL和OCX一起安装)的压缩版本。 创建和签署CAB文件的工具包含于Visual C++ 5.0 光盘中的
2006-11-08 11:00:00
2604
原创 获得Frame或IFrame中的IHTMLDocumnet2接口
IHTMLDocument2* GetDocFromFrame(IHTMLDocument2* pDoc2){ CComPtr pDoc3; CComPtr pDoc2Frame; hr = pDoc2->QueryInterface(IID_IHTMLDocument3,(void**)&pDoc3) ; if(hr==S_OK) { CComBSTR bstrName("F
2006-09-05 20:17:00
5052
1
原创 我的个性签名集
1、静者,无澜也。净者,无贪也。无贪无澜者,海纳百川也。2、我是倔强的人,我有不死的神!3、上帝在哭泣,我没有鲜血淋漓。4、生活是无耐的,生命是无畏的。5、生活是无畏的,生命是无耐的。6、老虎之所以成为森林之王,并不是因为他的头上有个“王”字,也不是因为他的缺点少,而是因为他的优点很突出。7、夜静鱼勤,黄鱼戏。8、生死契阔,与子成悦,执子之手,与子偕老。9、郑钧像一
2006-08-16 17:13:00
1413
1
原创 随记(一)
“快乐是要自己快乐,让别人来分享你的快乐,每天早上垃圾车来把垃圾全部带走,有形垃圾容易处理,无形垃圾最难处理。什么是真正的垃圾呢?怨、恨、恼、怒、烦,这才是真正的垃圾,假若今天把这些垃圾,请垃圾车全部带走,你今天就没有垃圾了。也就是说,只要你每天清扫心灵的垃圾,你就能得到幸福和快乐。” -> “客观环境很重要,它可以决定一个人的成败。邦赛与将军莎门树不能选择命运,但你却有权选择。如果
2006-07-25 22:28:00
989
原创 用一束薪柴温暖一生
生涯懒立身,腾腾任天真。囊中三升米,炉边一束薪。谁问迷悟迹,何知名利尘。夜雨草庵里,双脚等闲伸。 反复吟唱良宽这首代表作,会感受到一种悠然的舒畅的气氛。稍作思考就会明白,正是因为我们已经缺乏这种纯粹的生活能力,所以才会有这么多喜欢良宽的人。良宽不想卑躬屈膝以换取出人头地,也不求财源广进而富贵荣华。他不愿压抑自己的心灵,一切任性而为。他经常知足的感叹道:草庵的头陀袋还有乞讨来的三升
2006-07-25 21:43:00
1403
Mimefilter
2006-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人