COM/ATL/WTL
fengrx
认真!谦虚!真诚!守信!
展开
-
透明显示位图
方法1:使用API TransparentBlt。 方法2:比API要快一点 void TransparentBltImage(HDC hdcDest,int nXOriginDest,int nYOriginDest,int nWidthDest,int nHeightDest,HDC hdcSrc,int nXOriginSrc,int nYOriginSrc,原创 2009-07-09 09:18:00 · 805 阅读 · 1 评论 -
CString,int,string,char*之间的转换
《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”/0“的字符串数组转载 2009-06-05 10:12:00 · 672 阅读 · 0 评论 -
ActiveX控件签名
一,使用微软的工具不采用私钥文件1.制作根证书makecert -sk "myPK" -ss mySSName -n "CN=公司名称" -r myroot.cersk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;2.制作子证书makecert -sk "myPK" -is mySSName -n "CN=公司名称" -$ comme转载 2009-06-05 10:11:00 · 2009 阅读 · 0 评论 -
把javascript,vbscript中得数组传递给COM组件(or Activex)
COM组件的方法在IDL中的声明:[id(1), helpstring("方法InputArray")] HRESULT InputArray([in] VARIANT vData);在脚本中建立数组并调用COM组件的方法:当数组很大的时候,like 100k ,javascript在给数组赋值的时候效率非常低!完成时间,cpu占用率,占用的内存都大转载 2009-06-05 10:11:00 · 604 阅读 · 0 评论 -
ActiveX组件与JavaScript交互 方法1
1.在COM组件中调用JavaScript函数// 连接点方式页面javascript脚本 object classid="CLSID:B568F111-DFE4-4944-B67F-0728AB2AB30F" id="testCom" VIEWASTEXT>object>"JavaScript" for="testC转载 2009-06-05 10:08:00 · 1070 阅读 · 0 评论 -
__declspec,__cdecl,__stdcall都是什么意思?
__cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外,像printf这样接受可变个数参数的函数只有用cdecl才能够实现. 简单但重要的说: _cde转载 2009-06-05 08:26:00 · 1088 阅读 · 0 评论 -
COM 与 ATL 及 C++ 的托管扩展的互操作性
在本演练中,您将使用 ATL 创建一个 COM 组件,使用编译器中的 #import 语句支持写一个 COM 客户端程序来检验该组件的功能,然后使用 C++ 和 C# 的托管扩展向 .NET 客户端程序和 COM 客户端程序公开该组件。本演练旨在说明以下内容: 说明一个核心区域,在此区域内需要使用托管扩展,而不使用纯托管语言(如 Visual C#)。 说明转载 2009-06-05 10:17:00 · 737 阅读 · 0 评论 -
MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint转载 2009-06-04 10:47:00 · 1019 阅读 · 0 评论 -
不使用installutil.exe安装WINDOWS服务
using System;using System.Runtime.InteropServices;namespace MyServiceInstaller{class ServiceInstaller{ #region Private Variables private string _service转载 2009-06-05 10:17:00 · 671 阅读 · 0 评论 -
JavaScript监测ActiveX控件是否已经安装过的代码
function detectPlugin(CLSID,functionName) { var pluginDiv = document.createElement("") document.body.insertBefore(pluginDiv); pluginDiv.innerHTML = + CLSID +">; tr转载 2009-06-05 10:09:00 · 658 阅读 · 0 评论 -
avi文件格式
来源:http://blog.csdn.net/happydeer小知识:AVI文件格式----摘自《DirectShow实务精选》 作者:陆其明 AVI(AudioVideo Interleaved的缩写)是一种RIFF(Resource Interchange FileFormat的缩写)文件格式,多用于音视频捕捉、编辑、回放等应用程序中。通转载 2009-06-05 08:29:00 · 568 阅读 · 0 评论 -
对话框创建时函数调用顺序
打开无模式对话框时函数调用顺序1.PreSubclassWindow() 重载函数,允许用户首先子分类一个窗口 2.OnCreate() 消息响应函数,响应WM_CREATE消息,发送此消息以告诉一个窗口已经被创建 3.OnSize() 消息响应函数,响应WM_SIZE消息,发送此消息以告诉窗口大小发生变化转载 2009-06-04 08:20:00 · 1119 阅读 · 1 评论 -
操作任务栏上的页卡窗口
HRESULT hr; ITaskbarList* pTaskbarList; hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_ITaskbarList, ( void** )&pTaskbarList ); pTaskbarList->HrInit( );if( bshow )原创 2009-06-01 12:04:00 · 837 阅读 · 0 评论 -
API Hook 原理
一、什么是API Hook 见下图所示,API Hook就是对API的正常调用起一个拦截或中间层的作用,这样可以在调用正常的API之前得到控制权,执行自己的代码。其中Module指映射到内存中的可执行文件或DLL。 module0 module1 | |CALL module1!API001 ------------------------转载 2009-06-08 12:36:00 · 1649 阅读 · 0 评论 -
从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起
以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上 AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和多线程搅和在一起的时候,事情就变转载 2009-06-09 08:59:00 · 1083 阅读 · 1 评论 -
24节气与任意年的阳历日期对应的转换公式
公式有一定的误差,不过基本上1900-2100之间会在几分钟之内。。。 很多日历上标的节气会将 子时(23:00)作为一天的开始, 这样 23:00之后就要加一天。。。 #include #include static const double x_1900_1_6_2_5 = 693966.08680556;double get_solar_term( int y ,原创 2009-07-08 14:12:00 · 2660 阅读 · 2 评论 -
VC防止窗口和控件闪烁的方法
1、将Invalidate()替换为InvalidateRect() Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善闪烁的情况,计算一个Re转载 2009-07-07 13:22:00 · 1317 阅读 · 0 评论 -
XML中的字符串中出现字符'&'查询失败
&要写成&才行 public static String replaceString(String str, String regex, String replacement) { if (str == null) { return null; } int index = -1原创 2009-07-08 15:53:00 · 927 阅读 · 0 评论 -
如何获得可使用的COM口
//HKEY_LOCAL_MACHINE//HARDWARE//DEVICEMAP//SERIALCOMM// HKEY hKey; int rtn; m_cmbComm.ResetContent(); rtn = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Hardware//DeviceMap//SerialComm", NULL, KEY原创 2009-07-08 13:52:00 · 1168 阅读 · 0 评论 -
如何取得相对路径
#include #include #include "Shlwapi.h"void main(void){ char szOut[MAX_PATH] = ""; char szFrom[ ] = "c://a//b//path"; char szTo[ ] = "c://a//x//y//file"; cout << "The rela原创 2009-07-08 13:44:00 · 1439 阅读 · 0 评论 -
cab安装时如何更新安装新版本控件
1.首先要编译好新版本的控件。 2.在页面调用时在codebase属性中加入新版本号例如:修改前:OBJECT id="formx" classid="CLSID:E5022E7E-758C-4A32-99C6-55742289301D" height="90%" width="1原创 2009-06-18 15:38:00 · 1150 阅读 · 0 评论 -
ATL控件m_hWnd等于NULL(为空)怎么办
1.确保使用atl control创建的控件。2.设置m_bWindowOnly=TRUE;原创 2009-06-18 13:25:00 · 3109 阅读 · 3 评论 -
[debug]调试Release版本应用程序
引言如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程序可以象Debug版本一样运行。如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release版本测试,然而转载 2009-06-18 15:00:00 · 534 阅读 · 0 评论 -
阻止关机的完美实现
【写在开头】这是N久以前的笔记了,当时还没有写blog的习惯...今天在坛子上发现有人问这个问题,终于从某个旮旯中把它翻了出来。 根据MSDN的描述,采用如下的代码来实现阻止关机,结果发现在有的机器上能够阻止关机,在有的机器上却不能阻止(虽然能看到弹出的MessageBox,但还来不及反应,马上就关机了)。(都是WinXP SP2的机器)LRESULT CPreventS转载 2009-06-10 08:17:00 · 3256 阅读 · 1 评论 -
OSD(On Screen Display)简介
摘要在做显卡驱动或者FrameBuffer相关的东东时,可能会碰到有关OSD方面的知识,下面把我搜索的资料整理如下,并有一个非常简单实用的例子,希望对大家有帮助!---------------------------------------------------------声明: 此文为原创,欢迎转载,转载请保留如下信息 作者:聂飞(afreez) 北京-中关村转载 2009-06-09 08:45:00 · 5022 阅读 · 0 评论 -
SetStretchBltMode-WINDOWS API
SetStretchBltMode函数设置在指定设备内容中的伸展模式。 int SetStretchBltMode( HDC hdc, // DC的HANDLE int iStretchMode // 位图伸展模式 ); Hdc:输入,设备内容的HANDLE iStretchMode:输入,指定的伸展模式,参数可以下面转载 2009-06-05 22:01:00 · 894 阅读 · 0 评论 -
DNS一种新的穿透防火墙的数据传输技术
使用该技术背景:在目标主机安放后门,需要将数据传输出去,同时数据很重要,动作不能太大.其他情况"严重"不推荐使用该技术(后面我会讲到为什么). 针对目前防火墙的一些情况,如果自己的进程开一个端口(甚至是新建套接字)肯定被拦.相反,有一点我们也很清楚:被防火墙验证的进程在传送数据时永远不会被拦.所以,我的思路很简单:将其他进程中允许数据传输的套接字句柄拿为已用.过程如下:1转载 2009-05-26 11:12:00 · 2267 阅读 · 0 评论 -
木马技术研究第一部分
原帖:http://blog.csdn.net/davemin/archive/2006/10/30/1356139.aspx 申明: 本文涉及到的技术只供参考研究之用,不可用于非法行为,本人不负责。A. 写在开始自以为编写了几年的网络通信程序,对网络很熟悉,碰到个搞UNIX的朋友,才知道我对网络不精通。自以为研究了系统几年,对系统很熟悉,碰到个一直写驱动的朋友,才知道不转载 2009-05-26 11:08:00 · 515 阅读 · 0 评论 -
减小Exe, DLL 的大小问题 - VC
原帖:http://blog.csdn.net/davemin/archive/2006/09/26/1289795.aspx 1. 普通Exe 文件完全可以使用下面方法: A. link标记: /nodefaultlib 代表: Ignore all default libraries包括运行时库, 都不用. 当然如果大家要用相关c运行时库的api 怎么办呢?转载 2009-05-26 11:15:00 · 1702 阅读 · 0 评论 -
VC判断目标主机是否存活,模拟系统的ping
原帖:http://blog.csdn.net/biweilun/archive/2009/05/04/4149950.aspx 第13章的例子PS:有防火墙则无效// Module Name: Ping.c // // Description: // This sample illustrates h转载 2009-05-24 11:27:00 · 1769 阅读 · 0 评论 -
VC如何判断当前进程处在Administrator权限下
原帖:http://blog.csdn.net/biweilun/archive/2009/05/12/4171404.aspx #include #include BOOL IsAdmin(void);int main(int argc, char* argv[]){ if (IsAdmin()) printf("IsAdmin -转载 2009-05-24 11:20:00 · 2656 阅读 · 0 评论 -
COM组件的智能指针(深入浅出)
原帖:http://blog.csdn.net/wangweixing2000/archive/2005/08/03/444861.aspx 作者:王卫星 csdnid:wangweixing2000 职能指针其实只是为了我们开发者方便使用的东东,但是大多数据开发者总是害怕会有泄漏,以前的字符串的泄漏问题大家都应该知道了。atl7的出现应该让我们放心使用了!职能指针只是对我们的转载 2009-05-13 08:50:00 · 1023 阅读 · 0 评论 -
ActiveX发布步骤整理
原帖:http://blog.csdn.net/wangweixing2000/archive/2007/11/19/1893602.aspx 1、数字签名。使用SignCode.exe进行数字签名,步骤如下: 首先要有工具包,包括以下几个软件:(c:/Program Files/Microsoft Visual Studio .NET 2003/Common7/Tools/Bin目录下都转载 2009-05-13 08:48:00 · 743 阅读 · 0 评论 -
ATL问题集(前31个)
这些问题是以前在csdn当版主是一些朋友整理的,今天找到了,贴到这里来!#1 如何使用控件不能改变大小?答:有时我们需要创建不可改变大小的控件,像那种在运行时没有界面的控件(例:时间控件,SysInfo 等),想做到这种功能的话,请把以下代码加入到控件类的构造函数: m_bAutoSize = TRUE;SIZEL size = {24, 24};AtlPixelToHiMetric(转载 2009-05-12 16:32:00 · 2767 阅读 · 0 评论 -
XPCOM --- LINUX下的组件开发技术
XPCOMLINUX下的组件开发技术 COM技术作为微软推行的一种组件技术,在WINDOWS平台站有重要地位,在模块重用,跨语言通信等方面都能见到其身影。但今天给我要介绍的是LINUX下的COM实现----XPCOM,这是MOZILLA浏览器项目中所使用的基本技术,我们可以用C++制作XPCOM组件,在C++客户程序或MOZILLA浏览器中通过JAVASCRIPT脚本来调用组件,从而实转载 2009-05-13 09:03:00 · 755 阅读 · 1 评论 -
COM组件中的线程模式( 精)
COM组件中的线程模式1。提及COM的线程模式,实际上指的是两个方面,一个是客户程序的线程模式,一个是组件所支持的线程模式。客户程序的线程模式只有两种,单线程公寓(STA)和多线程公寓(MTA)。组件所支持的线程模式有四种:Single(单线程)、Apartment(STA)、Free(MTA)、Both(STA+MTA转载 2009-05-13 09:02:00 · 673 阅读 · 0 评论 -
自定义浏览器控件
同自动化浏览器(http://blog.joycode.com/jiangsheng/archive/2005/10/20/65489.aspx)相比,自动化浏览器控件(WebBrowser Control)在应用程序中更加常用。从Outlook的预览窗格到Maxthon这样的基于IE引擎的浏览器,从无界面的HTML分析器到NortonAntivirusd的主界面,浏览器控件在众多领域转载 2009-05-13 08:50:00 · 1993 阅读 · 0 评论 -
ATL问题集(32至50)
/*此文是将网上的一些文章,自已遇到的问题进行整理,有些是翻译,所有只供学习讨论,如有版权还归原作者*/#32如何动态创建ocx?答:看下面代码#include CComModule _Module;#include #include #pragma comment(lib,"atl") CComQIPtr m_spBrowser;CAxWin转载 2009-05-13 08:31:00 · 2708 阅读 · 0 评论 -
WTL怎么让View来响应菜单事件?
在WTL里面,CMainFrame的消息循环是这样的:程序代码BEGIN_MSG_MAP(CMainFrame) MESSAGE_HANDLER(WM_Create, OnCreate) CHAIN_MSG_MAP(CUpdateUI) CHAIN_MSG_MAP(CFrameWindowImpl)END_MSG_MAP()而View里面的消息循环是这样的:程序代码转载 2009-05-09 13:43:00 · 1008 阅读 · 0 评论 -
永中Office二次开发_JAVA的二次开发1
概述:永中Office是使用JAVA开发,所以直接使用JAVA进行二次开发比较方便,但由于在客户端运行时一般使用VB、VC去调用,所以有必要将其封装成COM组件,以便其它语言调用。 今天先将JAVA的二次开发的部分调用实例进行说明: 1.创建空的文档 public static Document createBlankWord() { Application.getIns原创 2009-03-31 08:32:00 · 5986 阅读 · 5 评论