摘要: #include #include #include #pragma comment(lib,"wininet.lib") int main(void) { DWORD byteread=0; char buffer[100]; memset(buffer,0,100); HINTERNET internetopen; internetopen=InternetOpen("Testing",IN... 阅读全文
posted @ 2011-01-27 02:26 alex618 阅读(3820) 评论(0) 推荐(0)
摘要: 写VC程序时碰到一个定时器的问题,说明一下。SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse,TIMERPROC lpTimerFunc ) ;其中hWnd是和timer关联的窗口句柄,此窗口必须为调用SetTimer的线程所有;如果hWnd为NULL,没有窗口和timer相关联并且nIDEvent参数被忽略nIDEvent是timer的标识,为非零值;如果hWnd为NU 阅读全文
posted @ 2011-01-27 01:59 alex618 阅读(1471) 评论(0) 推荐(0)
摘要: MMRESULTtimeSetEvent(UINTuDelay,UINTuResolution,LPTIMECALLBACKlpTimeProc,WORDdwUser,UINTfuEvent)uDelay:以毫秒指定事件的周期。Uresolution:以毫秒指定延时的精度,数值越小定时器事件分辨率越高。缺省值为1ms。LpTimeProc:指向一个回调函数。DwUser:存放用户提供的回调数据。FuEvent:指定定时器事件类型:TIME_ONESHOT:uDelay毫秒后只产生一次事件TIME_PERIODIC:每隔uDelay毫秒周期性地产生事件。微软公司在其多媒体Windows中提供了精 阅读全文
posted @ 2011-01-27 01:43 alex618 阅读(4675) 评论(0) 推荐(0)
摘要: 1.在COM组件中调用JavaScript函数 // 连接点方式页面javascript脚本 // 事件属性方式页面javascript脚本 function onState(s){ alert("onState(" + s + ")"); return 456; } var o = new ActiveXObject("TestATL.TestCom"); o.onstaTe=onSt... 阅读全文
posted @ 2011-01-27 01:42 alex618 阅读(6417) 评论(0) 推荐(0)
摘要: 获取HWND用API GetConsoleWindow,获取HINSTANCE使用GetModuleHandle(NULL)。 比如说: #include #include #include #include using namespace std; namespace dbsoft { class CSplashWindow { public: CSplashWindow( H... 阅读全文
posted @ 2011-01-27 01:42 alex618 阅读(5126) 评论(0) 推荐(0)
摘要: ATL包装了WINAPI中与创建和操作“窗口、对话框以及WINDOWS控制”有关的部分。ATL窗口类还包含了诸如子类化和超类化这样的高级特性。一、Windows应用程序的结构入口点——_tWinMain,它提供应用程序的HINSTANCE、命令行参数和指示如何显示主窗口的标志。调用RegisterClass注册主窗口类。调用CreateWindow创建主窗口。调用ShowWindow和UpdateWindow来显示主窗口。一个分发消息的消息循环。一个处理主窗口消息的过程。一组消息处理函数,用来处理窗口感兴趣的消息。调用DefWindowProc让Windows处理我们不感兴趣的消息。一旦主窗口 阅读全文
posted @ 2011-01-27 01:40 alex618 阅读(3865) 评论(0) 推荐(0)
摘要: 您试图与不兼容的库链接。重要事项 运行时库现在包含防止混合不同类型的指令。如果试图在同一个程序中使用不同类型的运行时库或使用调试和非调试版本的运行时库,则将收到此警告。例如,如果编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),并试图链接它们,则将得到此警告。应将所有源文件编译为使用同一个运行时库。有关更多信息,请参阅使用运行时库(/MD、/ML、/MT、/LD)编译器选项。可以使用链接器的 /VERBOSE:LIB 开关来确定链接器搜索的库。如果收到LNK4098,并想创建使用如单线程、非调试运行时库的可执行文件,请使用 /VERBO 阅读全文
posted @ 2011-01-27 01:39 alex618 阅读(32234) 评论(0) 推荐(2)
摘要: 目录:COM多线程原理与应用... 1目录:... 1前言:... 1套间:... 1套间的定义:... 1套间的分类:... 2套间的进入和退出:.. 2对象的同步:... 2组件对象的同步:... 2COM对象线程模型:.. 2进程内对象线程模型的种类:.. 2ATL对多线程的支持:.. 3对象引用的保护:... 3成员变量的保护:... 4前言:COM多线程一直是个不容易弄清的问题,我也被困扰了很久,特别是COM在线程方面的术语总是不能统一。本文是为了将我所学所用得做一个总结,本文不保证一定正确,但是会随着时间的推移逐渐完善改正。套间:套间的定义: 我个人认为COM技术内幕中关于 阅读全文
posted @ 2011-01-27 01:36 alex618 阅读(446) 评论(0) 推荐(0)
摘要: 什么是代理和存根 ? 打个比方,你到自动取款机上去取款;你就是客户,取款机就是你的代理;你不会在乎钱具体放在那里,你只想看到足够或更多的钱从出口出来(这就是com的透明性)。你同银行之间的操作完全是取款机代理实现。 你的取款请求通过取款机,传到另一头,银行的服务器,他也没有必要知道你在哪儿取钱,他所关心的是你的身份,和你取款多少。当他确认你的权限,就进行相应的操作,返回操作结果给取款机,取款机根据服务器返回结果,从保险柜里取出相应数量的钱给你。你取出卡后,操作完成。 取款机不是直接同服务器连接的,他们之间还有一个“存根”,取款机与存根通信,服务器与存根通信。从某种意义上说存根就是服务器的代 阅读全文
posted @ 2011-01-27 01:35 alex618 阅读(1397) 评论(0) 推荐(0)
摘要: 这阵子在搞一个activex的项目,发现dll型的输出控件比较难调试,导致我郁闷了几天了,调试不进去的话就定位不到错误,后面的工作就受阻了。试了好多种方法都不行,原来是不了解ie所致的。好像自从4.0以后,ie在我们打开一个网页时,会启动一个主的进程,和一个副进程,ie的调试器只touch到副进程是不行的,还得touch到主进程才可以。这个我也不确定是否正确,不过要使vs调试到activex工程里面去的话,我们还得按照下面的方法做。第一步:选择activex项目,打开项目属性,在“configuration properties”- “debugging”中的command 中选择ie浏览器 阅读全文
posted @ 2011-01-27 01:32 alex618 阅读(5260) 评论(0) 推荐(2)