
COM/ATL
文章平均质量分 66
MLiang
十年磨一剑,什么时候能脱离菜鸟
展开
-
分配和释放 BSTR 的内存
当创建 BSTR 并在 COM 对象之间传递它们时,必须小心地处理它们所使用的内存以避免内存泄漏。当 BSTR 停留在接口中时,在完成其使用后必须释放出它的内存。但是,如果 BSTR 传递出了接口,那么接收对象将负责它的内存管理。一般情况下,分配和释放分配给 BSTR 的内存的规则如下: 当调用进来一个需要 BSTR 参数的函数时,必须在调用之前为 BSTR 分配内存,并且在完原创 2006-04-21 15:57:00 · 2343 阅读 · 0 评论 -
ATL轻松简单创建NT服务
步骤:1. 打开VS,创建一个ATL项目,名为MService。2. 在 ATL向导“应用程序设计”选项,去掉属性化,选择“服务(EXE)”选项,点击完成。这时,我们就得到了一个什么也不做的NT服务,这时我们应该重写CMServiceModule 从模板CAtlServiceModuleT继承下的几个函数,来打造我们自己的NT服务。3. 重写CMServiceModu原创 2006-06-26 13:56:00 · 2765 阅读 · 0 评论 -
ATL NT服务运行过程
上图是ATL模板CAtlServiceModuleT内部运行服务的一个过程,其中RunMessageLoop是一个消息循环(Message Loop),直到SCM(服务控制管理器)发送了一个WM_QUIT消息,PostThreadMessage(m_dwThreadID, WM_QUIT, 0, 0),消息循环结束,然后执行PostMessageLoop,所以你可以在这里进行一些清原创 2006-07-13 12:35:00 · 2802 阅读 · 1 评论 -
Imitate virtual table using struct
Common.h////===================================================================//#pragma warning( disable : 4311 4312 4313 ) ////=========================================================原创 2007-08-08 09:51:00 · 1677 阅读 · 1 评论